Heim  >  Artikel  >  Java  >  Was ist die allgemeine Entwurfsmethode der Java-Dubbo-Architektur?

Was ist die allgemeine Entwurfsmethode der Java-Dubbo-Architektur?

WBOY
WBOYnach vorne
2023-04-27 21:52:051324Durchsuche

#? 🎜#

      Es besteht hier hauptsächlich aus vier Teilen:

● Anbieter: der Dienstanbieter, der den Dienst verfügbar macht

Protokoll: verantwortlich für den Anbieter und Protokollinteraktionsdaten zwischen Verbrauchern

Dienst: echte Geschäftsdienstinformationen, die als Schnittstellen und Implementierungen verstanden werden können java Dubbo架构整体设计方法是什么Container: Dubbos Betriebsumgebung

● Verbraucher: der Dienstkonsument, der Remote-Dienste aufruft #🎜 🎜#Protokoll: Verantwortlich für die Protokollinteraktionsdaten zwischen dem Anbieter und dem Verbraucher.

Cluster: Wahrnehmung der Listeninformationen auf der Anbieterseite.

Proxy: Kann als Dienstaufruf-Proxy des Anbieters verstanden werden, der übernimmt der Verbraucher Die Schnittstellenaufruflogik in

● 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

#🎜 🎜 #

Erläuterung: Hellgrün stellt den Umfang des Dienstproduzenten dar, Hellblau stellt den Umfang des Dienstkonsumenten dar und der rote Pfeil stellt die Richtung des Aufrufs dar: Geschäftslogikschicht-> Ebene (Fernprozeduraufruf) –> Methodenaufrufe über die Schnittstelle und werden an den einheitlichen Proxy auf der Verbraucherseite übergeben. Verwenden Sie ProxyFactory, um Proxy-Objekte zu erstellen. Hier verwenden wir die Javassist-Technologie von jdk und übergeben sie an das Filtermodul, um einheitliche Filteranforderungen zu stellen 🎜#● Als nächstes kommt die wichtigste Invoker-Aufruflogik# 🎜🎜#○ Informationen aus der Konfiguration über das Verzeichnis lesen und schließlich alle Invoker über die Listenmethode abrufen

○ 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

3. Dubbo-Gesamtdesign

java Dubbo架构整体设计方法是什么

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Umgang mit Zeitzonen in Java8Nächster Artikel:Umgang mit Zeitzonen in Java8