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

时间:2017-03-02 11:47:34

标签: spring-cloud-netflix

我已经创建了eureka服务注册表和注册服务。目前只有一个服务实例正在运行。如何添加同一服务的多个实例?我正在开发独立应用程序。我正在通过Rest Template访问服务。我正在关注https://spring.io/guides/gs/service-registration-and-discovery/

3 个答案:

答案 0 :(得分:5)

每个实例都需要一个唯一的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附带的源代码撰写了关于服务注册和发现的博文

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

答案 1 :(得分:5)

如果您的目标是在同一主机上运行一个服务的多个实例,则必须:

  1. 使用随机数配置Eureka instance-id
  2. 配置服务使用随机端口号
  3. 必须单独配置这两个,例如

    server:
      port: 0
    

    window.location.pathname
    

答案 2 :(得分:2)

你肯定需要另一个尤里卡实例,这里是关于尤里卡同伴意识的官方春天云documentation

简而言之,您需要做的就是通过在各自的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 IssueUnderstanding Spring Cloud Eureka Server self preservation and renew threshold。希望这会有所帮助。