Heim >Java >javaLernprogramm >Was ist die allgemeine Entwurfsmethode der Java-Dubbo-Architektur?
#? 🎜#
Dienst: echte Geschäftsdienstinformationen, die als Schnittstellen und Implementierungen verstanden werden können Container: Dubbos Betriebsumgebung
● Verbraucher: der Dienstkonsument, der Remote-Dienste aufruft #🎜 🎜#Protokoll: Verantwortlich für die Protokollinteraktionsdaten zwischen dem Anbieter und dem Verbraucher.● Registrieren: Registrierungscenter, wird für die Diensterkennung und Routing-Konfiguration verwendet. Anbieter und Verbraucher werden hier registriert ● Überwachen: wird für Anbieter und Verbraucher verwendet Datenstatistiken in, z. B. Anruf Häufigkeit, Anzahl der Erfolge und Misserfolge usw.
1.2 Beschreibung des Start- und Ausführungsprozesses
● Wenn der Anbieter startet, ist der Container für das Laden der Serviceinformationen und die Registrierung verantwortlich an das Registrierungszentrum über das Protokoll;
● Die Verbraucherseite startet, erfasst die Anbieterinformationen durch Überwachung der Anbieterliste und benachrichtigt die Verbraucherseite rechtzeitig über das Registrierungszentrum
● Verbraucherseite Initiieren Sie eine Anfrage über das Proxy-Modul.
● Der Verbraucher verwendet das Cluster-Modul, um den anzurufenden Anbieter auszuwählen.
● Der Verbraucher verwendet das Protokoll im Verbraucher, um Informationen an den Anbieter zu senden 🎜#● Der Anbieter verarbeitet Verbraucherinformationen über das Protokollmodul;
● Schließlich werden sie vom Dienst
2 verarbeitet. Gesamtanruflink
○ Wählen Sie über das Cluster-Modul die Invoker-Liste entsprechend aus Spezifische Routing-Regeln ausgewählt
○ Durch das LoadBalance-Modul wählt die Lastausgleichsstrategie einen bestimmten Invoker aus, um die Anforderung zu bearbeiten
○ Wenn während der Ausführung ein Fehler auftritt und der Wiederholungsmechanismus in der Verbraucherphase konfiguriert ist , die Ausführung wird wiederholt
● Verwenden Sie weiterhin den Filter, um die Ausführungsfunktion vorher und nachher zu kapseln. Der Invoker wählt das spezifische Ausführungsprotokoll aus
● Der Client führt die Codierung und Serialisierung durch und sendet dann die Daten #🎜 🎜#● Erreicht die Serverschicht im Provider, um die empfangenen Daten zu dekodieren und zu serialisieren.
● Verwenden Sie Exporter, um den Executor
● auszuwählen, und lassen Sie Filter eine Provider-seitige Filterung durchführen, um den Invoker-Executor #🎜🎜 zu erreichen #● Durch die spezifische Implementierung der Invoker-Aufrufschnittstelle und anschließende Rückgabe des Ergebnisses
Legendenbeschreibung:
● Der hellblaue Hintergrund auf der linken Seite des Bildes Die Schnittstellen werden von Dienstkonsumenten verwendet, die Schnittstellen mit hellgrünem Hintergrund auf der rechten Seite werden von verwendet Die auf der Mittelachse befindlichen Schnittstellen werden von beiden Parteien genutzt.
● Die Abbildung ist von oben nach unten in zehn Schichten unterteilt. Der schwarze Pfeil auf der rechten Seite stellt die Abhängigkeitsbeziehung zwischen den Schichten dar. darunter Service und Config Die Schicht ist API und alle anderen Schichten sind SPI● Der grüne Block im Bild ist die Erweiterungsschnittstelle und der blaue Block ist die Implementierungsklasse. Das Bild zeigt nur die verwendete Implementierungsklasse Verknüpfen Sie jede Ebene
● Die blaue gepunktete Linie in der Abbildung ist der Initialisierungsprozess, dh die Assembly-Kette beim Start. Die rote durchgezogene Linie ist der Methodenaufrufprozess, dh die Laufzeitaufrufkette ist Vererbung. Die Unterklasse kann als derselbe Knoten der übergeordneten Klasse betrachtet werden. Der Text ist die aufgerufene Methode.
Das Gesamtdesign des Dubbo-Quellcodes ist dem aufrufenden Link sehr ähnlich. Hier sehen Sie jedoch einige spezifische Implementierungen der Schnittstelle und eine detailliertere hierarchische Aufteilung auf der linken Seite. In der anschließenden Quellcode-Analyse werden wir uns auch auf die wichtigeren Modulimplementierungen konzentrieren.
Der nächste Schritt besteht darin, es in Schichten einzuführen
1. Geschäftslogikschicht
● Service-Geschäftsschicht: einschließlich Geschäftscode wie Schnittstellen und Implementierungsklassen
2. RPC-Schicht: Remote-Prozeduraufrufschicht
● Konfigurationsschicht, die der Außenwelt Konfiguration bereitstellt Im Kern kann die Konfigurationsklasse direkt initialisiert und auch die Konfigurationsdatei analysiert werden.
● Proxy-Dienst-Proxy-Schicht: Unabhängig davon, ob es sich um einen Produzenten oder einen Verbraucher handelt, generiert das Framework eine Proxy-Klasse. Der gesamte Prozess ist für die obere Schicht transparent , und die Business-Schicht ist gegenüber Remote-Anrufen gleichgültig.
● Register-Registrierungscenter-Schicht, kapselt die Registrierung und Erkennung von Dienstadressen, zentriert auf der Dienst-URL.
● Cluster-Routing-Schicht (Cluster-Fehlertoleranzschicht), bietet Routing und Lastausgleich für mehrere Anbieter, und es verbindet das Registrierungszentrum mit Invoker als Zentrum
● Monitor-Überwachungsschicht, Informationen zu RPC-Anrufen, wie z. B. die Anzahl der Anrufe, Fehlersituationen, Anrufzeit und andere statistische Informationen, werden auf dieser Ebene gesammelt
● Die Protokoll-Remote-Aufrufschicht kapselt RPC-Aufrufe, unabhängig davon, ob es sich um eine Dienstfreigabe oder eine Dienstreferenz handelt. Sie ist für den gesamten Lebenszyklus von Invoker verantwortlich. Alle Modelle in Dubbo sind näher an der Rmoting-Schicht : Ferndatenübertragungsschicht
● Informationsaustauschschicht, die den Anforderungs- und Antwortmodus kapselt und Anforderungen von synchron in asynchron umwandelt
● Die Transportnetzwerkübertragungsschicht vereint Netzwerkübertragungsschnittstellen wie Netty und Mina in einer Netzwerkübertragungsschnittstelle
● Serialisieren Sie die Datenserialisierungsschicht, die für die Verwaltung der Serialisierung und Deserialisierung der Datenübertragung im gesamten Framework verantwortlich ist. Ändern
Das obige ist der detaillierte Inhalt vonWas ist die allgemeine Entwurfsmethode der Java-Dubbo-Architektur?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!