如何创建注册到尤里卡服务注册表的尤里卡服务的多个实例?



我已经创建了尤里卡服务注册表并将服务注册到其中。当前只有一个服务实例正在运行。如何添加同一服务的多个实例?我正在开发独立的应用程序。我正在通过 Rest 模板访问服务,我正在关注 https://spring.io/guides/gs/service-registration-and-discovery/

如果打算在同一主机上运行一个服务的多个实例,则必须:

  1. 使用随机数配置 Eureka 实例 ID
  2. 使用随机端口号配置服务

这两者必须单独配置,例如

eureka:
instance:
instance-id: ${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${random.value}}

server:
port: 0

每个实例都需要有一个唯一的instanceId,通常在application.yml中使用以下命令进行配置:

...
eureka:
instance:
metadataMap:
instanceId: ${spring.application.name}:${server.port}
...

将端口添加到instanceId允许在同一主机中运行多个实例。

我还看到添加一个随机数而不是实例侦听的端口。

我在博客中使用JerseySpringEurekaRibbonFeign以及随附的源代码在 http://tech.asimio.net/2016/11/14/Microservices-Registration-and-Discovery-using-Spring-Cloud-Eureka-Ribbon-and-Feign.html

最近在博客上介绍了如何使用Eureka和 http://tech.asimio.net/2017/03/06/Multi-version-Service-Discovery-using-Spring-Cloud-Netflix-Eureka-and-Ribbon.htmlRibbon注册和发现服务的多个版本。

一旦你有了这个实例,你肯定需要另一个尤里卡实例,这是关于尤里卡同行意识的官方春季云文档。

简而言之,您需要做的就是通过在各自的application.yml中添加彼此的信息来使它们相互了解。希望这有帮助。阅读文档以详细了解。

---
spring:
profiles: peer1
eureka:
instance:
hostname: peer1
client:
serviceUrl:
defaultZone: http://peer2/eureka/
---
spring:
profiles: peer2
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1/eureka/

其他几个链接可以了解尤里卡 github 问题,了解 Spring Cloud 尤里卡服务器自我保护和续订阈值。希望这有帮助。

最新更新