2016-07-24 4 views

ответ

15

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 вы сможете увидеть все зарегистрированные микросервисы. Подобно этому вы можете масштабировать и иметь несколько экземпляров сервера в рабочей среде.

Примечание: Если вы пытаетесь это на одной системе, не забудьте отредактировать/и т.д./хосты файл:
127.0.0.1 peer1
127.0.0.1 peer2

+0

Спасибо за ваш ответ. В вашем примере, предположим, что я запускаю новый микросервис и устанавливаю serviceUrl на «http: // peer1: 1111/eureka /». Если в этот момент произойдет сбой peer1, мой микросервис не будет запущен. Я думаю, что клиентам (micorservices) должен быть задан адрес всего «кластера» вместо одного экземпляра eureka, а это значит, что все экземпляры eureka должны отображаться как один экземпляр для клиентов. – Neo

+0

Да, если peer1 не работает, микросервис будет fail, за исключением следующего: 'ERROR DiscoveryClient - - не удалось отправить heartbeat! com.netflix.discovery.shared.transport.TransportException: не удается выполнить запрос на каком-либо известном сервере ". Да, правильно, клиентам не задан адрес одного экземпляра. У меня была последняя конфигурация, в которой я прошел через запятую значения всех экземпляров сервера.Чтобы сбалансировать эти образы на серверах Eureka, я также видел загрузочные бункеры b/w microservices и экземпляры Eureka Server. –

+0

Мы делаем это в нашей среде компании, используя балансировщик нагрузки перед парами Eureka. –

-2

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

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

Это автономная конфигурация, а не HA. – lrother

+0

Это позволяет не регистрировать Eureka самостоятельно. – acohen