Eureka Server:如何实现高可用

Eureka Server: How to achieve high availability

我是 spring 云的新手。我读过 this doc,它说客户端应用程序必须指定服务 url:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

但是如果 localhost:8761 出现故障怎么办?

Eureka Discovery Server 应该在生产设置中以 Peer-Aware 配置模式使用。 查看: http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_peer_awareness

例如,您的第一个尤里卡服务器实例将具有如下配置:

server:
   port: 1111
eureka:
   instance:
      hostname: peer1
   client:
      serviceUrl:
           defaultZone: http://peer2:1112/eureka/

..第二个服务器实例是这样的:

server:
   port: 1112
eureka:
   instance:
      hostname: peer2
   client:
      serviceUrl:
           defaultZone: http://peer1:1111/eureka/

当 Eureka 服务器实例启动时,它们将相互寻找。所有微服务都会自动向它们注册,因此如果一个服务器出现故障,另一个服务器实例将始终存在。在两个 Eureka 实例上,您将能够看到所有已注册的微服务。这样您就可以在生产环境中扩展并拥有多个服务器实例。

注意:如果您在单个系统上尝试此操作,请不要忘记编辑 /etc/hosts 文件:
127.0.0.1 peer1
127.0.0.1 peer2