2016-07-24 22 views

Antwort

15

Der Eureka Discovery Server sollte im Peer-Aware-Konfigurationsmodus in Produktions-Setups verwendet werden. Check: http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_peer_awareness

Zum Beispiel Ihre erste Heureka-Server-Instanz wird Config wie dieses:

server: 
    port: 1111 
eureka: 
    instance: 
     hostname: peer1 
    client: 
     serviceUrl: 
      defaultZone: http://peer2:1112/eureka/ 

..und zweite Serverinstanz wie folgt aus:

server: 
    port: 1112 
eureka: 
    instance: 
     hostname: peer2 
    client: 
     serviceUrl: 
      defaultZone: http://peer1:1111/eureka/ 

Wenn Eureka-Server-Instanzen werden booten sie werden sich suchen. Alle Microservices registrieren sich automatisch bei ihnen, so dass bei einem Ausfall die andere Serverinstanz immer da ist. Auf beiden Eureka-Instanzen können Sie alle registrierten Microservices sehen. So können Sie in einer Produktionsumgebung skalieren und mehrere Server-Instanzen haben.

Hinweis: Wenn Sie diese auf einem einzigen System versuchen, vergessen Sie nicht die/bearbeiten etc/hosts-Datei:
127.0.0.1 Peer1
127.0.0.1 Peer2

+0

Vielen Dank für Ihre Antwort. In Ihrem Beispiel Angenommen, beginne ich eine neue Micro und stellen Sie die ServiceUrl zu ‚http: // Peer1: 1111/Heureka /‘. Wenn peer1 zu diesem Zeitpunkt untergeht, wird der Start meines Microservice fehlschlagen. Ich denke, dass Kunden (micorservices) sollte die Adresse des gesamten ‚Cluster‘ gegeben werden, statt einer einzigen Heureka Instanz, was bedeutet, sollten alle Heureka Instanzen erscheinen eine einzelne Instanz für die Kunden – Neo

+0

Ja sein, wenn Peer1 auf der Micro ist wird fail with exception wie folgt: 'ERROR DiscoveryClient- - konnte keinen Heartbeat senden! com.netflix.discovery.shared.transport.TransportException:.. Anfrage kann nicht auf jedem bekannten Server ausführen "' Ja, richtig, werden die Kunden nicht die Adresse einer einzelnen Instanz gegeben hatte ich meine letzte Konfiguration, in der ich bestanden hatte Komma getrennt Werte aller Serverinstanzen. um diese Zugriffe auf Eureka-Servern ausgleichen ich habe Instanzen Load Balancers auch b/w Microservices und Eureka Server gesehen. –

+0

Wir haben es in unserer Gesellschaft Umwelt tun das Eureka Paar einen Lastenausgleich nach vorne mit. –

-2

traf ich den gleichen Fehler wie Ihre, Konfiguration wie folgt funktioniert:

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

Dies ist die Standalone-Konfiguration nicht der HA. – lrother

+0

Dies verhindert, dass nur Eureka mit sich selbst von der Registrierung. – acohen