how to create multiple instances of eureka services registered into eureka service registry?

偶尔善良 提交于 2019-12-04 08:46:59

Each instance would need to have a unique instanceId, normally configured in application.yml using:

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

Adding the port to the instanceId allows to run multiple instances in the same host.

I have also seen adding a random number instead of the port the instance listens on.

I blogged about service registration and discovery using Jersey, Spring, Eureka, Ribbon and Feign with accompanying source code at http://tech.asimio.net/2016/11/14/Microservices-Registration-and-Discovery-using-Spring-Cloud-Eureka-Ribbon-and-Feign.html

And more recently blogged about how to register and discover multiple versions of a service using Eureka and Ribbon at http://tech.asimio.net/2017/03/06/Multi-version-Service-Discovery-using-Spring-Cloud-Netflix-Eureka-and-Ribbon.html.

If you aim to run multiple instances of one service on a same host, you must:

  1. configure Eureka instance-id with a random number
  2. configure the service use a random port number

These two must be configured individually, e.g.

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

and

server:
  port: 0
Grinish Nepal

You will definitely need another instance of eureka once you have that here is the official spring-cloud documentation on eureka peer awareness.

In short all you need to do is make them aware of each other by adding the info about each other in their respective application.yml. Hope this helps. Read the doc to learn in detail.

---
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/

Couple of other links to learn about Eureka github Issue, Understanding Spring Cloud Eureka Server self preservation and renew threshold. Hope this helps.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!