it-swarm.com.de

Was ist die Rolle von Zookeeper vs Eureka für Microservices?

Ich werde die Orchestrierung einer Reihe von Microservices in meiner Anwendung implementieren. Zwei häufig verwendete Tools, die ich gefunden habe, sind Apache Zookeeper und Netflix Eureka .

Kann mir bitte jemand einen Vergleich geben, der auf grundsätzlichen Unterschieden beruht, die diese beiden Dienste haben?

Gibt es ein anderes mächtiges Werkzeug?

19

Ich werde die Orchestrierung einer Reihe von Microservices in meiner Anwendung implementieren.

Dies ist ein schwieriges Problem, das Sie selbst lösen müssen. Sie sind wahrscheinlich besser dran, ein vorhandenes Orchestrierungssystem zu verwenden (siehe unten).

Gibt es ein anderes mächtiges Werkzeug?

Sie sollten sich mit Kubernetes befassen, was heutzutage der Standard in der Orchestrierung zu sein scheint. Es bietet viele zusätzliche Vorteile (Skalierbarkeit, Selbstheilung usw.) und wird heute in der Produktion häufig eingesetzt. Siehe die folgenden Links:

Zum Vergleich von Tierpfleger, Eureka und Kubernet:

  • Zookeeper ist ein verteilter Schlüsselwertspeicher. Es kann als Basis für die Implementierung der Serviceerkennung verwendet werden (ähnlich wie bei etcd).
  • Eureka ist in erster Linie ein Service-Locator, der im Rahmen von Netflixes Load Balancer und Failover verwendet wird (um die richtigen Service-Ziele für die Verteilung von Client-Anrufen an Mitglieder eines Anwendungsclusters zu finden).
  • Kubernetes ist eine Container-Orchestrierungslösung, die die Bereitstellung, Ermittlung und Selbstheilung von Diensten umfasst. Eine vollständige Liste der Funktionen finden Sie über den obigen Link. Die Serviceerkennung in Kubernet basiert auf DNS in dem virtuellen Netzwerk, das es überspannt und auf etcd aufbaut.
  • Consul (in der anderen Antwort erwähnt) ist ein Service Discovery Framework mit einer REST Schnittstelle und einigen zusätzlichen Funktionen (Health Checking, Service Segmentation, ..) einen eigenen internen verteilten Schlüsselwertspeicher, der ebenfalls verwendet werden kann.
13

Ein anderes Werkzeug könnte Konsul sein.

Eureka ist hauptsächlich ein Service-Discovery-Tool und wurde hauptsächlich für die Verwendung innerhalb der AWS-Infrastruktur entwickelt.

Zookeeper ist ein verteilter Schlüssel-/Wertspeicher für allgemeine Zwecke, der für die Serviceerkennung in Verbindung mit curator-x-discovery framework verwendet werden kann

Hier ist eine kurze Zusammenfassung Überblick über Service-Discovery-Lösungen

Sie können auch den Vergleich von Consul vs Eureka vs Zookeeper hier finden.

Obwohl Consul nicht nur ein Tierpfleger ist, sondern auch als Schlüssel-/Wertspeicher verwendet werden kann, sind die Vorteile von Consul die sofort einsatzbereiten Erkennungsfunktionen für Dienste

  1. DNS aus der Box
  2. komfortable RESTful API
  3. HealthCheck API sofort einsatzbereit

Außerdem ist consul verteilter: Agenten sind auf allen Service-VMs installiert, und daher ist das System höher verfügbar als zookeeper. Beachten Sie, dass das Konsulensystem geringe Kopplung zwischen Rechenzentren aufweist.

Zookeeper ist ausgereift, aber zu generisch. Sie können zookeeper also nicht nur zum Erkennen von Diensten verwenden, sondern auch zum Speichern von Konfigurationen, verteilten Sperren, Benachrichtigungen usw. Auch hier ist es praktisch, alle diese Funktionen mit Curator Framework/Curator Recipes zu verwenden.

Zookeeper verwendet ein Master/Slave-Kommunikationsschema zwischen Knoten im Cluster. Der Master wird von den Clustermitgliedern gewählt. Beachten Sie, dass es Edge-Fälle geben kann (z. B. aufgrund von Netzwerkproblemen), wenn mehr als ein Master im Cluster angezeigt wird. In diesem Fall hilft ein Neustart des Clusters.

Der Unterschied zwischen Eureka und Zookeeper und Consul besteht darin, dass Eureka ein System für enge Zwecke ist - ein System zur Ermittlung von Diensten und zum Lastenausgleich.

Alle 3 Systeme können in Spring integriert werden.

11
Alex M981