Dies ist, was Sie brauchen Eureka!

Persönliche Blog Navigationsseite (klicken Sie auf der rechten Seite Link einen persönlichen Blog zu öffnen): Daniel nehmen Sie mit auf Technologie - Stack 

Erstens, was ist Eureka

EUREKA ist ein Open-Source-Produkte Netflix-Unternehmen, ist es basierend auf REST (Representational State Transfer) Dienstleistungen, vor allem für den AWS-Cloud. Eureka bietet einen kompletten Service Registry und Service Discovery erreichen Realisierung, Frühling eine der wichtigsten Cloud-Systemkomponenten.

In einfachen Worten ist Eureka Open-Source-Netflix eine Service-Registrierung und Forschungsprodukte und stellt ein Java-Client. Natürlich Eureka nach springcloud Bemühungen zur Verbesserung kann in jedem Szenario verwendet werden, erfordert die Verwendung von Registry.

Eureka besteht aus zwei Komponenten: Eureka Server und Client. Eureka ist der Registrierungsserver. Eureka ist ein Client-Java-Client, die Interaktion mit dem Server, der Load Balancer als Polling zu vereinfachen, für den Service und Unterstützung zu bieten Failover.

Hier ist die Nutzungsszenarien Eureka

Von oben betrachtet Eureka Server Rolle als Registrierung, Bereitstellung von Entdeckung und Registrierung Funktionen und Dienste.

Service Provider Service-Provider, ihre Dienste zu Eureka Server registriert werden, während der Herzschlag Überprüfung durch staatliche Dienste ausgeführt werden.

Service-Consumer Service der Anrufer, eine Liste der registrierten Service von Eureka Server erhalten, um die Adresse der entsprechenden Service-Anrufe und Verwendung finden.

Zwei, Eureka Kernkonzepte

1, Eureka Server: Registry-Server

Registrierung der ausländischen zentralen Server bietet drei Hauptfunktionen:

(1) Service-Registrierung

Wenn der Dienstanbieter startet, wird es durch Eureka Client Eureka Server Information registrieren, erhalten Eureka Server speichern Informationen zu diesem Service, zweigeschossigen Mechanismus Eureka Server interne Caching die gesamte Registrierung zu erhalten.

(2) zur Verfügung stellen Registrierung

Service Verbraucher einen Dienst, wenn keine Cache-Eureka-Client-Registrierung aufzurufen, wird es die letzte Registrierung von Eureka Server erhalten.

(3) Synchronisierungsstatus

Eureka-Client Durch die Registrierung Mechanismus Herzschlag Eureka Server und synchronisiert den aktuellen Status des Kunden.

2, Eureka-Client: Client-Registrierung

Eureka Client ist ein Java-Client-Interaktion mit dem Eureka Server zur Vereinfachung. Eureka Client wird, zu aktualisieren, Cache-Informationen in Eureka Server ziehen. Also, wenn alle Eureka Server Abschuss Knoten, Service Verbraucher können immer noch die Informationen im Cache verwenden Sie den Anbieter des Dienstes zu finden, aber es werden widersprüchliche Informationen sein, wenn der Dienst geändert hat.

3, Register: Registration Service

Service Provider, sich in das Register eintragen wird, ist der Dienstleister auch ein Client-Eureka. Wenn Eureka-Client mit dem Eureka-Server zu registrieren, die ihre eigenen Metadaten liefert, wie IP-Adressen, Ports, Betriebsstatus-Anzeige-URL, zu Hause und so weiter.

4, Erneuern: Dienstleistungsauftrag

Eureka Client sendet einen Herzschlag alle 30 Sekunden zu verlängern. Eureka Server durch die Erneuerung des Eureka-Client arbeitet normal, keine Probleme zu informieren. Standardmäßig erhalten, wenn Eureka Server Eureka nicht Client-Erneuerung innerhalb von 90 Sekunden, Server-Seite wird von der Registrierungsinstanz gelöscht werden, kann für dieses Ereignis konfiguriert werden, in der Regel nicht zu ändern empfohlen.

5, Räumungsdienst entfernt

Wenn Eureka-Client und Eureka Server nicht mehr einen Herzschlag haben, Eureka-Server-Dienst-Instanz aus der Liste der registrierten Dienst gelöscht werden, entfernt, um einen Dienst.

6 Abbrechen: Service offline

Eureka-Client würde Eureka Server gerne eine Stornierungsanfrage zu senden, nachdem die Anfrage zu senden, wird die Client-Instanz Registrierungsinformationen von Eureka Server-Instanz gelöscht, wenn das Programm geschlossen wird. Der Antrag wird nicht automatisch vom Fließband, muss es auf dem Inhalt aufgerufen werden:

DiscoveryManager.getInstance().shutdownComponent();

7, GetRegistry: erhalten Registrierungsliste Informationen

Eureka Client-Registrierungsinformationen vom Server zu erhalten, und speichert sie lokal. Der Kunde wird diese Informationen benutzen, zusätzliche Dienste zu finden Ferngespräche. Die Registrierungsliste wird Informationen über regelmäßig aktualisiert (alle 30 Sekunden). Jede Rückkehr eine Liste der Registrierungsinformationen können aus dem Cache von Informationen Eureka-Client, Eureka-Client automatisch unterscheiden.

Wenn aus irgendeinem Grunde der Registrierungsinformationen Liste Informationen nicht rechtzeitig Spiel sein können, Eureka-Client wird die gesamten Registrierungsinformationen erneut erwerben. Eureka Server-Cache-Registrierungsliste Informationen sowie die gesamten Registrierungsinformationen für jede Anwendung werden komprimiert, komprimierte Inhalte und der Inhalt ist nicht genau das gleiche Kompression. Eureka-Client und Eureka Server können mit JSON / XML-Format kommunizieren. Standardmäßig Eureka Client-JSON Komprimierung unter Verwendung der Informationen zu Anmeldeformularen Liste zu erhalten.

8, Remote Call: Remote-Aufruf

Wenn Eureka Client von der Registrierungsstelle an die Diensteanbietern Informationen erworben, können Sie den entsprechenden Dienst über HTTP-Anfragen nennen, es gibt Ribbon mehr Service-Provider, Eureka-Client-Client automatisch automatischer Lastausgleich.

Drittens, der Selbstschutz-Mechanismus

Standardmäßig Ihr Geld, wenn Eureka-Server keinen Herzschlag Mikro Service-Instanzen innerhalb von 90 Sekunden erhält, wird die Instanz gelöscht werden. Aber in der Mikro-Architektur ist in der Regel prozessübergreifende Service-Anrufe zwischen Diensten, Netzwerk-Kommunikation sind oft mit vielen Problemen konfrontiert, wie Mikro-Service-Status ist normal, schlägt die Netzwerkpartition, was in diesem Fall abgebrochen wurde.

Zahlreiche Beispiele sind innerhalb eines festgelegten Zeitraums abgeschrieben, ernsthaft die Verfügbarkeit einer Mikro-Service-Architektur, um dieses Problem zu lösen gefährden könnte, Eureka einen Selbstschutzmechanismus entwickelt hat, was ist dann Selbstschutzmechanismus?

Eureka Server während des Betriebes werden scheitern Herzschläge Verhältnis unter 85% ist innerhalb von 15 Minuten zu zählen, wenn weniger als 85%, Eureka Server in Mechanismus Selbstschutz ein.

Nach Eureka Server Selbstschutzmechanismus ausgelöst wird, wird die Seite angezeigt wird:

Eureka Server in den Selbstschutzmechanismus, die folgenden Situationen:

(1) Eureka nicht mehr, weil für eine lange Zeit entfernt werden und erhält keine Herzschlag-Registrierungsdienst aus der Liste abgelaufen.

(2) Eureka der Lage sein, noch neue Registrierung und Auskunftsdienste zu akzeptieren, aber nicht synchronisiert werden (das heißt, um sicherzustellen, dass der aktuelle Knoten noch verfügbar ist) auf anderen Knoten.

(3) Wenn das Netz stabil ist, die aktuelle Instanz der neuen Registrierungsinformation an den anderen Knoten synchronisiert.

Eureka ist ein Mechanismus des Selbstschutzmechanismus manslaughter Dienst zu verhindern. Wenn einzelne Kunden Herzschlag Kontakt verloren erscheinen, dann, dass das Problem des Kunden ist, entfernen Sie den Client, wenn Eureka viel Herzversagen erfasst, dann das könnte ein Netzwerkproblem, in den Selbstschutzmechanismus sein, wenn ein Client-Taktrückgewinnung, Eureka wird den Selbstschutz-Mechanismus automatisch verlassen.

Wenn der Dienstleister direkt an der Montagelinie in einer nicht-normalen Schutzfrist, wird die Service-Verbraucher eine gültige Service-Instanz erhalten, wird Versagen genannt. einige fehlertolerante Mechanismen wie Wiederholungen, Leistungsschalter für dieses Problem haben Service Verbraucher erfordert.

Vier, Eureka High Availability Cluster

In der Theorie geht nach unten die Service-Consumer lokalen Cache-Adresse des Dienstanbieters, auch wenn Eureka Server, es wird keine Anrufe zwischen dem Dienst beeinflussen, aber wenn es um den Dienst offline kommt, werden die lokalen Cache-Informationen erscheinen Abweichung, Auswirkungen auf die Stabilität der gesamten Mikro-Dienste, so bauen Eureka Server-Cluster die hohe Verfügbarkeit der gesamten Architektur zu verbessern, ist es sehr notwendig.

Wie aus der Figur zwischen Eureka Server Cluster Replizieren zum Synchronisieren von Daten untereinander über zu sehen sind, nicht zwischen dem Hauptknoten und jedem Slave-Knoten unterscheidet, sind alle Knoten gleich. In dieser Architektur jeder registrierte Erhöhung der Verfügbarkeit von Knoten miteinander, jeder Knoten muss eine oder mehr Verbindungen zu anderen Knoten ServiceUrl gültig hinzuzufügen.

Wenn eine Station Eureka Server Ausfallzeiten, fordert Eureka-Client schaltet automatisch auf den neuen Eureka Server-Knoten. Wenn die Server-Ausfallzeiten gestellt, Eureka wieder in das Server-Cluster-Management integriert werden. Wenn der Knoten Client-Anforderungen zu akzeptieren beginnt, werden alle Operationen zwischen Knoten repliziert, in Eureka Server die Anforderung an alle anderen Knoten zur Zeit bekannt.

Auch Eureka Server Synchronisation folgen ist ein sehr einfaches Prinzip: Solange es eine Kante Knotenverbindung erhalten Sie Informationen und Verbreitung synchronisieren können. Wenn es also mehrere Knoten ist, zwischen den Knoten müssen nur paarweise miteinander verbunden sein, um einen Durchgang zu bilden, können die anderen Informationen ausgetauscht Registrierung werden. Aber auch der Eureka-Client, zwischen mehreren Eureka Server wird über einen P2P-Service Registry synchronisieren jeden Eureka Server erreicht.

Zustand zwischen Eureka Server-Cluster verwendet asynchrone Synchronisierung, gibt es keine Garantie den Staat zwischen dem Knoten das gleiche sein muss, kann aber im Grunde der Endzustand garantiert das gleiche ist.

Fünf, Eureka-Partition

Eureka bietet die Region und Zone Partition zwei Konzepte:

 Region: Es kann als andere Regionen geographisch zu verstehen, wie Asien, in China, Dalian und so weiter. Es gibt keine Begrenzung bestimmte Größe. Nach den projektspezifischen Umständen kann es selbst rationale Teilung Region sein.

Zone: kann einfach als einen bestimmten Raum innerhalb der Region zu verstehen, wie Region in Dalian unterteilt ist, Dalian hat zwei Zimmer, können Sie die Region teilen wieder unter zone1, zone2 zwei Zone.

Six, Eureka Sicherung AP

Eureka Server jeder Knoten gleich sind, ein paar Knoten hängen nicht den normalen Knoten beeinflussen, können die verbleibenden Knoten noch Dienstleistungen Registrierung und Anfrage zur Verfügung stellen. Und Eureka-Client, wenn eine der Eureka Registrierung, wenn es die Verbindung fehlschlägt gefunden wird, wird es automatisch zu anderen Knoten wechseln. Solange es noch ein Eureka Server ist, können Sie Registrierungs-Service zur Verfügung garantieren (die Verfügbarkeit zu gewährleisten), aber die Informationen nicht aktuell sein können (nicht starke Konsistenz gewährleisten).

Seven, Eureka Workflow

1, Eureka Server erfolgreich gestartet wird, wartet auf den Server zu registrieren.

Während des Startvorgangs Wenn Sie den Cluster, durch die Replizieren Registrierungs Synchronisation zwischen den Clustern, die jeweils Eureka Server existiert unabhängige Full-Service-Registrierungsinformationen konfigurieren.

2, Eureka-Client der Registrierung auf der Grundlage der Konfiguration von Eureka-Server-Adresse Registrierungsdienste zu starten.

3, Eureka Client sendet einen Herzschlag zu Eureka Server alle 30 Sekunden um zu beweisen, dass Client-Dienst ist normal.

4, wenn die innere Eureka Server90 Sekunden Eureka-Client keinen Herzschlag erhalten, die Registrierung wird als Knoten ausfällt, wird die Instanz abgeschrieben.

5, Zeiteinheit Eureka Server-Statistiken zu einer großen Anzahl von Eureka-Client keinen Herzschlag sendet, wird es als möglich, dass die Netzwerk-Anomalie, in den Selbstschutzmechanismus nicht mehr Herzschlag Senden ohne Client.

6 wird, wenn der Client-Eureka Herzschlag wieder normal, Eureka Server automatisch den Selbstschutzmechanismus verlassen.

7, Eureka-Client in voller Höhe oder Zeitpunkt der inkrementellen Zugriff auf Dienste aus der Registrierung Registrierung und die erfassten Informationen werden lokal zwischengespeichert.

8, wenn ein Dienstaufruf, Eureka Client wird den lokalen Cache finden starten und Dienstleistungen zu erhalten. Wenn Sie nicht bekommen kann, mit der Registrierung beginnen Zentrum aktualisieren Sie die Registrierung, und dann in den lokalen Cache synchronisiert.

9, Eureka-Client zu dem Ziel-Server zu erhalten, Informationen, initiieren einen Serviceanruf.

10, Eureka-Client sendet an die geschlossenen Eureka Server Aufhebungsanforderung, Eureka Server-Instanz aus der Registrierung entfernt.

Acht, Eureka Server Datenspeicherung

Eureka Server der Datenspeicherung in zwei Schichten: eine Datenspeicherschicht und die Pufferschicht.

Registrieren Sie die Datenspeicherschicht Service Informationen über Eureka Server, Daten-Caching-Schicht ist das Ergebnis der Verpackung aufnehmen, kann es direkt an den Eureka-Client Anrufe zurückgegeben werden.

Eureka Server Datenspeicherschicht ist doppelt ConcurrentHashMap, wir wissen ConcurrentHashMap Faden sicher und effizient Kartensammlung.

private final ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>> registry= new ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>>();

ConcurrentHashMap erste Schicht key = spring.application.name Anwendungsname wird Client-Instanz registriert; Wert ist nested ConcurrentHashMap.

Verschachtelte ConcurrentHashMap key = instanceId zweite Schicht ist die einzige Instanz des Dienstes ID, Wert des Objekts Lease, Leasing-Objektspeicher Registrierungsinformationen aller dieses Beispiels, einschließlich IP, Port und andere Eigenschaften.

Gemäß dieser Speicherstruktur die wir finden können, ist Eureka Server die erste Schicht speichert alle Dienstnamen, Dienstname auf die Informationen und Beispiele entspricht, dass die erste Schicht in Übereinstimmung mit dem Servicenamen dieser Dimension Segmentierung Speicher angewandt wird:

应用名1:应用1实例 Map
应该名2:应用2实例 Map
...

Die zweite Schicht ist ein Beispiel für die einzigartige ID gespeichert ist, dann ist die endgültige Speicherstruktur gemäß Dieses Datenformat ist:

                :  应用1实例A:实例A的注册信息 
应用名1:应用1实例:  应用1实例B:实例B的注册信息 
                :  应用1实例C:实例C的注册信息
                :  ....
-----------------              
                :  应用2实例F:实例F的注册信息 
应该名2:应用2实例:  应用2实例G:实例G的注册信息 
                :  ... 

...

Datenspeicherschicht-Datenstruktur, wie unten dargestellt:

Wenn wie der Status des Dienstes geändert, synchronisiert Registrierungsdaten in Eureka Server Informationen, wie Registrierungsdienste, während Service ausgenommen.

Neun, Eureka-Cache-Mechanismus

Eureka Server, um die Reaktion Effizienz, eine Zweischichtstruktur des Cache zur Verfügung zu stellen, die Registrierung erforderlichen Informationen, um Eureka-Client direkt in der Cache-Struktur gespeichert.

Der Cache der ersten Ebene: readOnlyCacheMap Wesentlichen ConcurrentHashMap, datenabhängige Zeitsynchronisation von readWriteCacheMap, die Standardzeit von 30 Sekunden.

readOnlyCacheMap: CurrentHashMap ist eine Nur-Lese-Cache Dies ist vor allem, um für die Kunden verwendet wird Registrierungsinformationen zu erhalten, aktualisiert seinen Cache, auf den Update-Timer abhängig und readWriteCacheMap gemacht, indem die Werte zu vergleichen, wenn die Daten inkonsistent sind, Orte Daten readWriteCacheMap. vorherrschen.

Second-Level-Cache: readWriteCacheMap, ist im Wesentlichen Guava-Cache.

readWriteCacheMap: readWriteCacheMap primäre Synchronisationsdaten in der Speicherschicht. erfolgreich, zusammen mit den Daten bestimmt wird, ob der Cache oder nicht, wenn die erfaßten Daten in den Puffern, wenn die Daten nicht, nicht vorhanden ist durch die Last Verfahren Cacheloader zu laden, nachdem die Daten in den Cache geladen werden.

readWriteCacheMap Cache-Ablaufzeit, ist die Standard-180 Sekunden, wenn der Dienst offline, die Daten in diesem Cache-Ablauf, Registrierung, Statusänderungen werden, gelöscht werden.

Wenn die Gesamtmenge des erworbenen Eureka Client oder Akquisitionsschrittes Daten einen Puffer beginnen, wenn einer existiert nicht in dem Cache-Speicher, und dann von dem sekundären Cache-Speicher erfaßt; wenn es keine sekundäre Cache ist, dieses Mal die erste Speicherschicht Daten-Cache-Synchronisierung erfaßt dann aus dem Cache.

Schicht Eureka Server durch den Cache-Mechanismus, kann sehr effektiv sein, um die Reaktionszeit des Eureka Servers durch die Datenspeicherschicht und die Pufferschicht zu verbessern, ist geschnitten unterschiedliche Datenträger nach Nutzungsszenarien zur Verfügung zu stellen.

Zehn, Code-Beispiele

1. Projektrahmen:

2, Eureka-Server application.yml

server:
  port: 9000
eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    instance:
      prefer-ip-address: true

3, Client-Startklasse

package cn.itcast.product;

...

@SpringBootApplication
@EntityScan("cn.itcast.product.entity")
@EnableEurekaClient
public class ProductServiceApplication {
   public static void main(String[] args) {
      SpringApplication.run(ProductServiceApplication.class, args);
   }
}

4, einige grundlegende Steuerung, Service, Bohne nicht schreiben, eine Datenbank Federdaten JPA Weise Abfragen.

5, starten Sie den Dienst

Eureka Server -> Eureka providor -> Eureka Consumer

Eureka Server

6, Eureka Consumer Anrufdienste

XI Zusammenfassung

Erklären Sie das Kernkonzept von Eureka, Eureka Selbstschutz-Mechanismus, Eureka Hochverfügbarkeits-Cluster. Durch die Analyse des Prinzips der Eureka, Eureka kann deutlich spüren die geniale Konstruktion, durch eine Reihe von Mechanismen, die perfekte Lösung für die Registrierung von Stabilität und hohe Verfügbarkeit.

Eureka, um die Registrierung von Hochverfügbarkeit, nicht-tolerant starken Datenkonsistenz, Datenserviceknoten zu schützen inkonsistente Daten zwischen Eureka-Client unvereinbar sein können. Weitere geeignete Spanne mehrere Räume, die Serviceverfügbarkeit für Registry anspruchsvolle Einsatzszenarien.

Befestigt Java / C / C ++ / Maschinelles Lernen / Algorithmen und Datenstrukturen / Front-End / Android / Python / Programmierer Lesen / Einzel Bücher Bücher Daquan:

(Klicken Sie auf der rechten Seite im trockenen persönlichen Blog zu öffnen dort): Technische trocken Blüte
===== >> ① [Java Daniel Sie auf dem Weg zur erweiterten nehmen] << ====
===== >> ② [+ acm Algorithmus Datenstruktur Daniel nehmen Sie auf dem Weg zur erweiterten] << ===
===== >> ③ [Datenbank Daniel Sie auf dem Weg zur erweiterten nehmen] << == ===
===== >> ④ [Daniel Web-Frontend Sie auf dem Weg zur erweiterten nehmen] << ====
===== >> ⑤ [maschinelles Lernen python und Daniel nehmen Sie Eintritt in die advanced road] << ====
===== >> ⑥ [Architekt Daniel nehmen Sie auf dem Weg zur erweiterten] << =====
===== >> ⑦ [C ++ Daniel voran Sie auf der Straße nehmen] << ====
===== >> ⑧ [ios Daniel nehmen Sie auf dem Weg zur erweiterten] << ====
=====> > ⑨ [Websicherheit Daniel Sie auf dem Weg zur erweiterten nehmen] << =====
===== >> ⑩ [Linux - Betriebssystem und Daniel Sie auf dem Weg zur erweiterten nehmen] << = ====

Es gibt keine unearned Früchte, hoffen, dass Sie junge Freunde, wollen Freunde Techniken lernen, von der Straße in der Art und Weise, alle Hindernisse zu überwinden bestimmt in Technologie zu binden, zu verstehen, das Buch, und dann auf den Code klopfen, verstehen das Prinzip und Praxis gehen, werden es bringt Ihnen das Leben, Ihre Arbeit, Ihre Zukunft einen Traum.

Veröffentlicht 47 Originalarbeiten · erntete Lob 0 · Aufrufe 267

Ich denke du magst

Origin blog.csdn.net/weixin_41663412/article/details/104893065
Empfohlen
Rangfolge