Eureka Server:如何实现高可用性

时间:2016-07-24 07:55:24

标签: spring-cloud netflix-eureka

我是春天的新手。我已阅读this doc,并说客户端应用程序必须指定服务网址:

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

但如果localhost:8761失败怎么办?

2 个答案:

答案 0 :(得分:28)

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

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

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

答案 1 :(得分:-5)

我遇到了和你一样的错误,这样的配置会起作用:

eureka:
    instance:
        hostname: localhost
    client:
        registerWithEureka: false
        fetchRegistry: false
        serviceUrl:
            default: http://${eureka.instance.hostname}:${server.port}/eureka/