SpringCloud Eureka

 

在上一节中,我们已经配置了 Ribbon ,并在这两个服务之间分配了负载。在本部分中,我们将设置 Eureka naming server。

naming server

naming server是一种计算机应用程序,它实现了用于响应目录服务查询的网络服务。

 

Eureka服务器

Eureka服务器是基于REST的服务器,在 AWS Cloud 服务中用于负载均衡和中间层服务的故障转移。

Eureka服务器是一种包含以下信息的应用程序: 所有客户端服务应用程序。每个微服务都会向Eureka服务器注册。服务器使用其 端口号 IP地址注册客户端服务。它也称为 Discovery Server 。Eureka服务器随附于Spring Cloud捆绑包。它在默认端口 8761 上运行。它还带有一个基于Java的客户端组件eureka客户端,它使与服务的交互变得更加容易。

 

服务器的需求

另一个负载平衡器应用程序,称为 AWS Cloud 。由于其固有的性质,服务器会上下波动。没有中间层负载均衡器。 Eureka服务器填补了 客户端中间层负载均衡器之间的空白。

假设我们要启动另一个货币兑换实例, CurrencyExchangeService3 服务并在端口8002上启动它。在这里出现一个问题, 功能区将能够将负载分配给它吗?

如果功能区希望将负载分配给新服务器,我们需要将其添加到配置中。根据负载,我们可以增加或减少服务实例的数量。

在本节中,我们将能够动态增加或减少实例的数量。

如果我们根据当前启用的CurrenyExchangeService的数量继续更改CurrencyCalulationService,那么维护起来将变得非常困难。

当我们想简化维护时,Eureka服务器应运而生。所有微服务的所有实例都将在 Eureka 服务器中注册。每当出现新的微服务实例时,它将在Eureka服务器中注册自己。微服务在服务器上的注册称为 服务注册。

每当一个服务要与另一个服务通话时,假定CurrencyCalculationService想要与CurrencyExchangeService通话。 CurrencyCalculationService首先与Eureka服务器对话。服务器提供当前正在运行的CurrencyExchangeService实例。为其他服务提供实例的过程称为 服务发现。

服务注册服务发现是两个重要的服务器的功能。下一步,我们将设置一个Eureka服务器。

 

设置Eureka服务器

设置过程涉及很多步骤。 Eureka服务器如下:

  • 为Eureka服务器创建组件
  • 更新CurrencyCalculationService以连接到Eureka服务器
  • 将CurrencyExchangeService连接到Eureka服务器
  • 配置功能区

一旦在Eureka服务器上注册了currency-exchange-service实例,那么我们将使用功能区从服务器中查找详细信息。让我们按照上面指定的步骤进行操作:

为Eureka服务器创建组件

步骤1: 打开Spring Initializr https://start.spring.io 。

步骤2: 提供 Group名称。我们提供了 com.codebaoku.microservices。

步骤3: 提供 Artifact id。我们提供了 netflix-eureka-naming-server。

Eureka Naming Server

步骤4: 添加以下依赖项: Eureka Server,Config Client,Actuator, DevTools。

Eureka Naming Server

步骤5: 点击 生成 >按钮。它会下载一个 zip 文件。

步骤6: 提取该zip文件并将该文件夹粘贴到Spring Tool Suite中(STS)工作区,然后 导入

文件->导入->现有Maven项目->下一步->浏览->选择 netflix-eureka命名-服务器项目->完成

Eureka服务器

步骤7: 打开 NetflixEurekaNamingServerApplication.java 文件,并使用注释 @EnableEurekaServer 启用Eureka服务器。

NetflixEurekaNamingServerApplication .java

package com.codebaoku.microservices.netflixeurekanamingserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class NetflixEurekaNamingServerApplication 
{
public static void main(String[] args) {
SpringApplication.run(NetflixEurekaNamingServerApplication.class, args);
}
}

步骤8: 打开 application.properties 文件并配置 应用程序名称,端口,尤里卡服务器

spring.application.name=netflix-eureka-naming-server
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

端口 8761 是Eureka服务器的默认端口。

步骤9: 运行 NetflixEurekaNamingServerApplication.java 文件作为Java应用程序。

第10步: 打开浏览器并输入URL http://localhost:8761 。它显示了Eureka服务器UI。

Eureka Naming Server

在本节中,我们有创建了一个组件Eureka服务器。下一步,我们将微服务与Eureka服务器连接。

 在本节中,我们将连接 currency-conversion-service 和 currency-exchange-service 到 Eureka 服务器。首先,我们将连接 ...