Сервер Eureka: как добиться высокой доступности

Я новичок в облаке spring. Я прочитал этот документ, и он говорит, что клиентское приложение должно указать URL-адрес службы:

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

Но что, если localhost:8761 опускается?

Ответ 1

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

Ответ 2

Я встретил ту же ошибку, что и ваша, такая конфигурация будет работать:

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