Einführung in Eureka, grundlegende Architektur, Selbstschutz, der Unterschied zwischen Eureka und Tierpfleger

Verzeichnis

Was ist Eureka?

Eureka Grundarchitektur

Drei Rollen

Selbstschutzmodus

Der Unterschied zwischen Eureka und Tierpfleger


Was ist Eureka?

Eureka ist ein Submodul von Netflix und eines der Kernmodule. Eureka ist ein REST-basierter Dienst, der zum Auffinden von Diensten verwendet wird, um die Erkennung und das Failover von Cloud-Middle-Tier-Diensten zu ermöglichen.

Die Registrierung und Erkennung von Diensten ist für die Microservice-Architektur sehr wichtig. Bei der Erkennung und Registrierung von Diensten müssen Sie nur die Dienstkennung verwenden, um auf den Dienst zuzugreifen, ohne die Konfigurationsdatei des Dienstaufrufs zu ändern. Die Funktion ähnelt dem Registrierungszentrum von Dubbo, z. B. Zookeeper.

Eureka Grundarchitektur

Spring Cloud kapselt das von Netflix entwickelte Eureka-Modul, um die Registrierung und Erkennung von Diensten zu implementieren (bitte vergleichen Sie Zookeeper). 

Eureka verwendet die Designarchitektur von CS. Eureka Server dient als Server für Dienstregistrierungsfunktionen, es ist ein Dienstregistrierungszentrum.

Die anderen Microservices im System verwenden Eureka-Clients, um eine Verbindung zum Eureka-Server herzustellen und Heartbeat-Verbindungen aufrechtzuerhalten. Auf diese Weise kann das Wartungspersonal des Systems Eureka Server verwenden, um den normalen Betrieb jedes Mikrodienstes im System zu überwachen. Einige andere Module von SpringCloud (wie Zuul) können Eureka Server verwenden, um andere Mikrodienste im System zu erkennen und die zugehörige Logik auszuführen.

 

Eureka enthält zwei Komponenten: Eureka Server und Eureka Client

Eureka Server bietet einen Dienstregistrierungsdienst

Nachdem jeder Knoten gestartet wurde, wird er in EurekaServer registriert, sodass die Dienstregistrierung in EurekaServer die Informationen aller verfügbaren Dienstknoten speichert. Die Informationen der Dienstknoten können intuitiv in der Schnittstelle angezeigt werden

EurekaClient ist ein Java-Client, der zur Vereinfachung der Interaktion von Eureka Server verwendet wird. Der Client verfügt außerdem über einen integrierten Load Balancer mit Round-Robin-Ladealgorithmus. Nach dem Start der Anwendung wird ein Heartbeat an Eureka Server gesendet (der Standardzeitraum beträgt 30 Sekunden). Wenn Eureka Server den Herzschlag eines Knotens nicht innerhalb mehrerer Herzschlagzyklen empfängt, entfernt EurekaServer den Dienstknoten aus der Dienstregistrierung (Standard 90 Sekunden).

Drei Rollen

Eureka Server bietet die Registrierung und Ermittlung von Diensten

Dienstleister Dienstleister registrieren ihre Dienste bei Eureka, damit Dienstkonsumenten sie finden können

Service Consumer erhält von Eureka eine Liste der registrierten Services, damit diese Services nutzen können

Selbstschutzmodus

Wenn Eureka Server innerhalb eines bestimmten Zeitraums nicht den Heartbeat einer Microservice-Instanz empfängt, meldet EurekaServer die Instanz standardmäßig ab (Standard 90 Sekunden). Aber , wenn die Netzwerkpartition Versagen, zwischen Mikro- und EurekaServer Dienst können nicht kommunizieren, über Verhaltensweisen können sehr gefährlich werden - weil Mikro - Dienst selbst tatsächlich gesund ist , dann sollte dies nicht diese Mikro-Dienste abgeschrieben werden.

Eureka löst dieses Problem durch den "Selbstschutzmodus". Wenn der EurekaServer-Knoten in kurzer Zeit zu viele Clients verliert (möglicherweise ist ein Netzwerkpartitionsfehler aufgetreten), wechselt dieser Knoten in den Selbstschutzmodus. In diesem Modus schützt EurekaServer die Informationen in der Dienstregistrierung und löscht die Daten in der Dienstregistrierung nicht mehr (dh es werden keine Mikrodienste abgemeldet). Wenn der Netzwerkfehler behoben ist, verlässt der Eureka Server-Knoten automatisch den Selbstschutzmodus.

Im Selbstschutzmodus schützt Eureka Server die Informationen in der Dienstregistrierung und bricht keine Dienstinstanz mehr ab. Wenn die Anzahl der empfangenen Herzschläge über dem Schwellenwert liegt, verlässt der Eureka Server-Knoten automatisch den Selbstschutzmodus. Seine Designphilosophie ist, dass es lieber die falschen Dienstregistrierungsinformationen behält, als eine mögliche fehlerfreie Dienstinstanz blind abzubrechen. Erklären Sie in einem Satz: Es ist besser zu leben als zu sterben

Zusammenfassend ist das Selbstschutzmodell eine Sicherheitsmaßnahme gegen Netzwerkanomalien. Seine Architekturphilosophie ist es, lieber alle Mikrodienste gleichzeitig beizubehalten (gesunde Mikrodienste und ungesunde Mikrodienste bleiben erhalten) oder alle gesunden Mikrodienste blind abzubrechen. Durch die Verwendung des Selbstschutzmodells kann der Eureka-Cluster robuster und stabiler werden.

In Spring Cloud können Sie eureka.server.enable-self-Erhaltung = false verwenden, um den Selbstschutzmodus zu deaktivieren.
 

Die bekannte CAP-Theorie besagt, dass ein verteiltes System C (Konsistenz), A (Verfügbarkeit) und P (Partitionsfehlertoleranz) nicht gleichzeitig erfüllen kann. Da die Partitionsfehlertoleranz in einem verteilten System gewährleistet sein muss, können wir nur einen Kompromiss zwischen A und C eingehen. Hier garantiert Zookeeper CP, während Eureka AP ist.

Der Unterschied zwischen Eureka und Tierpfleger

Zookeeper garantiert CP

Wenn wir das Registrierungscenter nach einer Liste von Diensten abfragen, können wir tolerieren, dass das Registrierungscenter die Registrierungsinformationen vor einigen Minuten zurückgegeben hat, aber wir können den Dienst nicht akzeptieren und sind direkt ausgefallen und nicht verfügbar. Mit anderen Worten, die Dienstregistrierungsfunktion erfordert eine höhere Benutzerfreundlichkeit als die Konsistenz. Aber zk gibt es eine solche Situation, wenn der Master - Knoten mit anderen Knoten , weil das Netzwerk Kontaktausfall verloren, werden die verbleibenden Knoten Führer Wiederwahl sein. Das Problem ist, dass die Wahlzeit für den Führer zu lang ist (30 bis 120 Sekunden) und der gesamte zk-Cluster während der Wahl nicht verfügbar ist, was zu einer Lähmung des Registrierungsdienstes während der Wahl führt. In einer Cloud-Bereitstellungsumgebung ist es sehr wahrscheinlich, dass der zk-Cluster den Hauptknoten aufgrund von Netzwerkproblemen verliert. Obwohl der Dienst möglicherweise wiederhergestellt werden kann, ist die langfristige Wahlzeit, die durch die langfristige Nichtverfügbarkeit der Registrierung verursacht wird, unerträglich.

Eureka garantiert AP

Eureka versteht dies und soll daher zuerst die Verfügbarkeit sicherstellen. Jeder Knoten von Eureka ist gleich, und der Ausfall mehrerer Knoten wirkt sich nicht auf die Arbeit normaler Knoten aus. Die verbleibenden Knoten können weiterhin Registrierungs- und Abfragedienste bereitstellen. Der Eureka-Client wechselt automatisch zu anderen Knoten, wenn er feststellt, dass die Verbindung bei der Registrierung bei einem Eureka fehlschlägt. Solange noch ein Eureka verfügbar ist, kann er sicherstellen, dass der Registrierungsdienst verfügbar ist (Verfügbarkeit garantieren), aber die gefundenen Informationen Möglicherweise nicht auf dem neuesten Stand (eine starke Konsistenz ist nicht garantiert). Darüber hinaus verfügt Eureka über einen Selbstschutzmechanismus. Wenn mehr als 85% der Knoten innerhalb von 15 Minuten keinen normalen Herzschlag haben, geht Eureka davon aus, dass ein Netzwerkfehler zwischen dem Client und dem Registrierungscenter vorliegt. Situation: 

1. Eureka entfernt keine Dienste mehr aus der Registrierungsliste, die ablaufen sollten, da sie lange Zeit keinen Heartbeat erhalten haben. 
2. Eureka kann weiterhin Registrierungs- und Abfrageanforderungen für neue Dienste akzeptieren, wird jedoch nicht mit anderen Knoten synchronisiert (dh der aktuelle Knoten ist garantiert (Noch verfügbar) 
3. Wenn das Netzwerk stabil ist, werden die neuen Registrierungsinformationen der aktuellen Instanz mit anderen Knoten synchronisiert

Daher kann Eureka die Situation gut bewältigen, in der einige Knoten aufgrund von Netzwerkfehlern den Kontakt verlieren, anstatt den gesamten Registrierungsdienst wie zookeeper zu lähmen.

Eureka als reines Service-Registrierungszentrum ist "professioneller" als Tierpfleger, da der Registrierungsservice für die Benutzerfreundlichkeit wichtiger ist, können wir die kurzfristige Konsistenz akzeptieren.

 

Veröffentlichte 524 Originalartikel · Gefällt mir 80 · Besuche 150.000+

Ich denke du magst

Origin blog.csdn.net/xushiyu1996818/article/details/104525519
Empfohlen
Rangfolge