📅  最后修改于: 2021-01-11 02:28:53             🧑  作者: Mango
在上一节中,我们已经配置了功能区并在两个服务之间分配了负载。在本节中,我们将设置Eureka命名服务器。
命名服务器是一种计算机应用程序,它实现用于响应目录服务查询的网络服务。
Eureka命名服务器是基于REST的服务器,在AWS Cloud服务中用于负载均衡和中间层服务的故障转移。
Eureka命名服务器是一个包含有关所有客户端服务应用程序信息的应用程序。每个微服务都会向Eureka命名服务器注册。命名服务器使用其端口号和IP地址注册客户端服务。也称为发现服务器。 Eureka命名服务器随附Spring Cloud捆绑包。它在默认端口8761上运行。它还带有一个基于Java的客户端组件eureka客户端,它使与服务的交互变得更加容易。
我们还有另一个负载平衡器应用程序,称为AWS Cloud 。由于其固有的性质,服务器会上下波动。没有中间层负载均衡器。 Eureka命名服务器填补了客户端与中间层负载均衡器之间的空白。
假设我们要启动另一个货币兑换服务实例,即CurrencyExchangeService3 ,并在端口8002上启动它。这里出现一个问题,功能区将负载分配给它吗?
如果功能区希望将负载分配给新服务器,则需要将其添加到配置中。根据负载,我们可以增加或减少服务实例的数量。
在本节中,我们将能够动态增加或减少实例数。
如果我们根据有多少CurrenyExchangeService处于活动状态来继续更改CurrencyCalulationService,则将很难维护它。
当我们想简化维护时,Eureka命名服务器应运而生。所有微服务的所有实例都将在Eureka命名服务器上注册。每当出现新的微服务实例时,它将在Eureka命名服务器中注册自己。在命名服务器上进行微服务的注册称为服务注册。
每当服务要与另一个服务通话时,假定CurrencyCalculationService要与CurrencyExchangeService通话。 CurrencyCalculationService首先与Eureka命名服务器对话。命名服务器提供当前正在运行的CurrencyExchangeService实例。将实例提供给其他服务的过程称为服务发现。
服务注册和服务发现是命名服务器的两个重要功能。在下一步中,我们将建立一个Eureka命名服务器。
设置Eureka命名服务器涉及很多步骤,如下所示:
一旦在Eureka命名服务器上注册了Currency-exchange-service实例,我们将使用功能区从命名服务器中查找详细信息。让我们按照上面指定的步骤进行操作:
为Eureka命名服务器创建组件
步骤1:打开Spring Initializr https://start.spring.io 。
步骤2:提供群组名称。我们提供了com.javatpoint.microservices。
第3步:提供工件ID 。我们提供了netflix-eureka-naming-server。
步骤4:添加以下依赖项: Eureka Server,Config Client,Actuator和DevTools。
步骤5:点击Generate(生成)按钮。它会下载一个zip文件。
步骤6:解压缩zip文件并将其粘贴到Spring Tool Suite(STS)工作区中,然后将其导入。
文件->导入->现有Maven项目->下一步->浏览->选择netflix-eureka-naming-server项目->完成
步骤7:打开NetflixEurekaNamingServerApplication.java文件,并使用注释@EnableEurekaServer启用Eureka命名服务器。
NetflixEurekaNamingServerApplication.java
package com.javatpoint.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文件,并配置应用程序名称,端口和eureka服务器。
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 Application运行。
步骤10:打开浏览器,然后输入URL http:// localhost:8761 。它显示了Eureka服务器UI。
在本节中,我们创建了一个Eureka组件命名服务器。在下一步中,我们将微服务与Eureka命名服务器连接。