使用Eureka和Ribbon分发调用

2025年1月11日 | 阅读 2 分钟

在上一节中,我们已经将currency-exchange-service和currency-conversion-service注册到Eureka命名服务器。

当CurrencyCalculationService(currency-conversion-service)调用CurrencyExchangeService时,Eureka命名服务器会找到currency-exchange-service的详细信息。

Ribbon不再对URL进行硬编码,而是与Eureka命名服务器通信,并检索所有微服务实例的详细信息。

步骤1: 打开文件application.properties

在此文件中,我们已经配置了Eureka命名服务器并禁用了我们之前配置的服务器列表。 在currency-conversion-service中,我们已经配置了Eureka的URL。 现在,我们在两个服务中都配置了Eureka命名服务器。

现在,CurrencyExchangeService开始与Eureka命名服务器通信。

application.properties

注意:在上面的代码中,哈希符号(#)表示注释。

这里要注意的一件事是,在application.properties文件中,我们没有任何currency-exchange-service的来源。 我们没有在currency-conversion-service中对currency-exchange-service的URL进行硬编码。

步骤2: 关闭所有正在运行的应用程序。

步骤3: 首先,运行NetflixEurekaNamingServerApplication.java

步骤4: 打开浏览器并刷新Eureka服务器。

步骤5: 在端口8000上运行CurrencyExchangeServiceApplication.java的实例。

步骤6: 运行CurrencyConversionServiceApplication.java

步骤7: 清除控制台并使其预热。

步骤8: 打开浏览器并键入URL https://:8100/currency-converter-feign/from/EUR/to/INR/quantity/1000。

Connecting Microservices to Eureka naming server

当我们刷新Eureka服务器时,它总是在响应中返回端口8000。

步骤9: 在端口8001上运行CurrencyExchangeServiceApplication.java的另一个实例。

步骤10: 再次刷新Eureka服务器。 我们看到有两个 currency-exchange-service的实例在端口80008001上运行。

Connecting Microservices to Eureka naming server

步骤11: 刷新URL https://:8100/currency-converter-feign/from/EUR/to/INR/quantity/1000。

Connecting Microservices to Eureka naming server

当我们刷新Eureka服务器时,它会一次又一次地更改端口。

步骤12: 关闭CurrencyExchangeServiceApplication8000

Connecting Microservices to Eureka naming server

步骤13: 再次刷新URL https://:8100/currency-converter-feign/from/EUR/to/INR/quantity/1000。它在响应中返回端口8001

因此,即使同一服务的实例宕机或由于其他原因中断,服务也永远不会宕机。

  
下一主题API网关介绍