Eureka Server: как добиться высокой доступности
Я новичок в весеннем облаке. Я прочитал этот документ, и он говорит, что клиентское приложение должно указать URL службы:
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
Но что, если localhost:8761
идет вниз?
2 ответа
Eureka Discovery Server следует использовать в режиме конфигурации Peer-Aware в производственных настройках. Проверьте: http://cloud.spring.io/spring-cloud-static/spring-cloud.html
Например, ваш первый экземпляр сервера 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
Я встретил ту же ошибку, что и ваш, конфиг, как это будет работать:
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
default: http://${eureka.instance.hostname}:${server.port}/eureka/