2015-06-15 10 views
18

Od doc wiosny, widzę, że możemy mieć wzajemną serwer eureka razem, więc dla Eureka1 w application.yml, mogę mieć:Jak config wielu serwerów Eureka od klienta w Spring Obłoku

spring: 
    profiles: peer1 
eureka: 
    instance: 
    hostname: peer1 
    client: 
    serviceUrl: 
     defaultZone: http://peer2/eureka/ 

I w Eureka Server 2, mogę:

spring: 
    profiles: peer2 
eureka: 
    instance: 
    hostname: peer2 
    client: 
    serviceUrl: 
     defaultZone: http://peer1/eureka/ 

Teraz te dwa serwery eureka są świadome siebie nawzajem, to jest dobre. ALE, teraz w konfigurowaniu klienta, kiedy rejestrują się ponownie Eureka, jak to zrobić?

W mojej aplikacji klienckiej, mam:

eureka: 
     instance: 
     hostname: ${host.instance.name:localhost} 
     nonSecurePort: ${host.instance.port:8080} 
     leaseRenewalIntervalInSeconds: 5 #default is 30, recommended to keep default 
     metadataMap: 
      instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}} 
     client: 
     serviceUrl: 
      defaultZone: http://(eurekaServerHost):8761/eureka/ 

    server: 
     port: ${host.instance.port:8080} 

Więc teraz moje pytanie będę używał peer1 lub peer2 jak EurekaServerHost w application.yml klienta?

Dzięki

Odpowiedz

18

Użyj oddzielonych przecinkami listę rówieśników w eureka.client.serviceUrl.defaultZone.

eureka.client.serviceUrl.defaultZone=http://<peer1host>:<peer1port>/eureka,http://<peer2host>:<peer2port>/eureka 
+0

To nie działa w moim przypadku. Wprowadzam kilka hostów Eureka jako oddzielną przecinkę listę w aplikacji klienta eureka. Jednak rejestruje się tylko z pierwszym na liście. Proszę pomóż. – Khuzi

+3

z https://github.com/Netflix/eureka/wiki/Understanding-Eureka-Peer-to-Peer-Communication "Po rozpoczęciu odbierania ruchu przez serwer wszystkie operacje wykonywane na serwerze są replikowane do wszystkie węzły równorzędne, o których wie serwer. Jeśli operacja nie powiedzie się z jakiegoś powodu, informacje są uzgadniane po następnym uderzeniu serca, które również zostanie zreplikowane między serwerami. " – pshirishreddy