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。
步骤4: 添加以下依赖项: Eureka Server,Config Client,Actuator,和 DevTools。
步骤5: 点击 生成 >按钮。它会下载一个 zip 文件。
步骤6: 提取该zip文件并将该文件夹粘贴到Spring Tool Suite中(STS)工作区,然后 导入。
文件->导入->现有Maven项目->下一步->浏览->选择 netflix-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服务器。下一步,我们将微服务与Eureka服务器连接。
在本节中,我们将连接 currency-conversion-service 和 currency-exchange-service 到 Eureka 服务器。首先,我们将连接 ...