Eureka命名服务器

在上一节中,我们配置了Ribbon,并在两个服务之间分发了负载。在本节中,我们将设置Eureka命名服务器。

命名服务器

命名服务器是一种计算机应用程序,用于实现对目录服务的查询的网络服务。

Eureka命名服务器

Eureka命名服务器是一种基于REST的服务器,用于AWS云服务中的中间层服务的负载平衡和故障转移。

Eureka命名服务器是一个应用程序,其中包含所有客户端服务应用程序的信息。每个微服务都会向Eureka命名服务器注册自己。命名服务器会使用它们的端口号IP地址注册客户端服务。它也被称为发现服务器。Eureka命名服务器与Spring Cloud捆绑在一起。它在默认端口8761上运行。它还带有基于Java的客户端组件,Eureka客户端,它使与服务的交互变得更加容易。

命名服务器的需求

我们还有另一个负载均衡应用程序,称为AWS云。由于其固有性质,服务器会上下线。没有中间层负载均衡器。Eureka命名服务器填补了客户端中间层负载均衡器之间的差距。

假设我们想要启动另一个currency-exchange-service的实例,即CurrencyExchangeService3,并将其启动在端口8002上。这里有一个问题,Ribbon能够将负载分配给它吗?

如果Ribbon想要将负载分配给新的服务器,我们需要将其添加到配置中。根据负载的大小,我们可以增加或减少服务的实例数。

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

如果我们不断更改CurrencyCalulationService中的内容,基于目前有多少CurrenyExchangeService是活动的,那么维护起来会非常困难。

当我们希望使维护更加容易时,Eureka命名服务器就出现了。所有微服务的所有实例都将向Eureka命名服务器注册。每当微服务的新实例启动时,它都会向Eureka命名服务器注册自己。将微服务注册到命名服务器的过程称为服务注册

每当一个服务想要与另一个服务通信时,假设CurrencyCalculationService想要与CurrencyExchangeService通信。CurrencyCalculationService首先与Eureka命名服务器通信。命名服务器提供当前运行的CurrencyExchangeService的实例。向其他服务提供实例的过程称为服务发现

服务注册服务发现是命名服务器的两个重要特性。在下一步中,我们将设置Eureka命名服务器。

设置Eureka命名服务器

在设置Eureka命名服务器时涉及许多步骤,如下所示:

  • 为Eureka命名服务器创建一个组件
  • 更新CurrencyCalculationService以连接到Eureka命名服务器
  • 将CurrencyExchangeService连接到Eureka命名服务器
  • 配置Ribbon

一旦currency-exchange-service的实例已在Eureka命名服务器上注册,我们将使用Ribbon从命名服务器查找详细信息。让我们按照上述指定的步骤进行操作:

为Eureka命名服务器创建一个组件

步骤1:打开Spring Initializr [https://start.spring.io](https://start.spring.io/)

步骤2:*提供*组名称。我们提供了cn.javatiku.microservices。

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

eureka-naming-server.png

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

eureka-naming-server-1.png

步骤5:*单击*Generate按钮。它会下载一个zip文件。

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

文件->导入->现有的Maven项目->下一步->浏览->选择netflix-eureka-naming-server项目->完成

eureka-naming-server-2.png

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

**NetflixEurekaNamingServerApplication.java**

package cn.javatiku.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应用程序。

步骤10:打开浏览器,键入URL http://localhost:8761。它会显示Eureka服务器UI。

eureka-naming-server-3.png

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

标签: spring, Spring教程, spring cloud, spring cloud教程, spring cloud框架, spring cloud面试题, springcloud组件, springcloud微服务架构, springcloud入门教程, springcloud主件, spring cloud架构图