我已经创建了尤里卡服务注册表并将服务注册到其中。当前只有一个服务实例正在运行。如何添加同一服务的多个实例?我正在开发独立的应用程序。我正在通过 Rest 模板访问服务,我正在关注 https://spring.io/guides/gs/service-registration-and-discovery/
如果打算在同一主机上运行一个服务的多个实例,则必须:
- 使用随机数配置 Eureka 实例 ID
- 使用随机端口号配置服务
这两者必须单独配置,例如
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
允许在同一主机中运行多个实例。
我还看到添加一个随机数而不是实例侦听的端口。
我在博客中使用Jersey
、Spring
、Eureka
、Ribbon
和Feign
以及随附的源代码在 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 尤里卡服务器自我保护和续订阈值。希望这有帮助。