Heim > häufiges Problem > Hauptteil

Was ist RPC-Middleware?

爱喝马黛茶的安东尼
Freigeben: 2020-01-07 09:34:14
Original
4785 Leute haben es durchsucht

Was ist RPC-Middleware?

1. Nachrichten-Middleware

Message Queue-Technologie ist eine Technologie zum Austausch von Informationen zwischen verteilten Anwendungen. Nachrichtenwarteschlangen können sich im Speicher oder auf der Festplatte befinden und die Warteschlange speichert Nachrichten, bis sie von der Anwendung gelesen werden. Mit Nachrichtenwarteschlangen können Anwendungen unabhängig voneinander ausgeführt werden – sie müssen nicht den Standort der anderen kennen oder darauf warten, dass das empfangende Programm die Nachricht empfängt, bevor sie mit der Ausführung fortfahren.

Im Allgemeinen hat Nachrichten-Middleware die folgenden Funktionen: Reduzierung der Kopplung, Reduzierung von Verkehrsspitzen, asynchrone Kommunikation und zuverlässige Übertragung

1. Reduzierung der Kopplung: lose Kopplung durch Veröffentlichung und Abonnement

Wir nehmen das Registrierungsgeschäft als Beispiel. Wenn die Registrierung erfolgreich ist, werden SMS und E-Mail zur Bestätigung an den Benutzer gesendet. Das traditionelle Architekturmodell lautet wie folgt:

Was ist RPC-Middleware?

E-Mail-Geschäft und SMS-Geschäft Der Code wird im Benutzerregistrierungsprozess geschrieben. Unabhängig davon, ob er über eine Schnittstelle oder einen Remote-Anruf implementiert wird, wird eine neue Anforderung hinzugefügt Es werden keine E-Mails gesendet, um die Punkte für Benutzer zu erhöhen:

Zuerst wird die Geschäftsverarbeitung nach erfolgreicher Registrierung in einem Geschäftssystem implementiert Um den Registrierungscode zu ändern, müssen Sie die Anwendung starten und stoppen, wenn Sie online gehen. Diese Methode weist den höchsten Kopplungsgrad auf.

Zweitens müssen wir durch Fernaufrufe, wenn wir neue Geschäftsverarbeitung hinzufügen möchten, immer noch den Hauptprozesscode ändern, was unweigerlich dazu führt, dass die Anwendung gestartet und gestoppt wird.

Wenn wir die Nachrichten-Middleware wie folgt einführen:

Was ist RPC-Middleware?

Durch Veröffentlichen und Abonnieren wird nach erfolgreicher Registrierung des Benutzers jeweils eine Nachricht an die Nachrichten-Middleware gesendet Das Geschäftsende abonniert die Nachrichten desselben Kanals und führt das entsprechende Geschäft aus, nachdem es die Nachricht über die erfolgreiche Registrierung erhalten hat. Mit dem Zusatz „Punkte hinzufügen“ reicht es aus, dass das Punktesystem die entsprechende Verarbeitung übernimmt und diese Nachricht abonniert. Es ist nicht erforderlich, den Geschäftscode des Benutzers zu ändern oder die Anwendung zu starten oder zu stoppen, und die reibungslose Erweiterung ist gewährleistet Geschäft erzielt werden kann.

2. Asynchrone Kommunikation

Nehmen wir das obige Beispiel: Wenn die Benutzerregistrierung abgeschlossen ist und die SMS-E-Mail gesendet wird, wird der Client zurückgesendet, um den Benutzer über die Registrierung zu informieren ist erfolgreich. Nach der Verwendung der Nachrichten-Middleware kann der Benutzer nach dem Absenden der Registrierungsinformationen und dem Abschluss der Verarbeitung aufgefordert werden, sich erfolgreich zu registrieren. Nachfolgende SMS-Dienste und E-Mail-Dienste erhalten die Erfolgsmeldung der Benutzerregistrierung vom abonnierten Kanal, bevor SMS-Nachrichten gesendet werden Es besteht keine Notwendigkeit mehr zwischen Unternehmen.

3. Reduzierung von Verkehrsspitzen und Verhinderung von Überlastungen

Nachrichten-Middleware kann während Spitzenzeiten Nachrichten ansammeln, und nachdem die Spitze vorüber ist, verbraucht das nachgelagerte System langsam Nachrichten, um das Problem von Verkehrsspitzen zu lösen .

Wenn die Parallelität ihren Höhepunkt erreicht, ist der Druck auf das Back-End-System normalerweise sehr hoch. Unabhängig davon, ob es sich um einen Anwendungsserver oder einen Datenbankserver handelt, können zu diesem Zeitpunkt ähnliche Anforderungen in die Nachrichtenwarteschlange gestellt werden der Nachrichten-Middleware und sammelt sich langsam für die Verarbeitung an. Sie können auch die Größe der Nachrichtenwarteschlange festlegen, um den Umfang der Parallelität zu steuern. Das Geschäftsszenario von Produkt-Flash-Verkäufen ist relativ typisch.

4. Zuverlässige Übertragung

Nachrichtenbasierte Kommunikation ist zuverlässig und Nachrichten gehen nicht verloren. Die meisten Messaging-Middlewares bieten die Funktionalität, Nachrichten auf der Festplatte zu speichern. Im ersten Szenario zu Beginn kann die Nachrichten-Middleware die vom Produzenten erzeugten Nachrichten auf der Festplatte speichern. Die Back-End-Anwendung fällt aus, die Nachrichten gehen jedoch nicht verloren und die Anwendung wird neu gestartet, um die Verarbeitung fortzusetzen.

Möglicherweise haben Sie die Frage: Wenn die Nachrichten-Middleware ausgefallen ist, wie kann sie bestehen bleiben, wenn die Nachricht nicht empfangen werden kann? Es spielt keine Rolle, die Nachrichten-Middleware bietet eine Vielzahl von Nachrichtenreplikationsstrategien, Persistenzstrategien, Clusterbereitstellungsstrategien usw., die die zuverlässige Übertragung von Nachrichten gewährleisten können.

2. Nachrichten-Middleware-Modus

Was ist RPC-Middleware?

Was ist RPC-Middleware?

3. Häufig verwendete Nachrichten-Middleware

RabbitMQ

1. RabbitMQ-Funktionen:

RabbitMQ ist eine offene Quellimplementierung basierend auf dem AMQP-Standard, der in der Erlang-Sprache entwickelt wurde. RabbitMQ stammt ursprünglich aus Finanzsystemen und wird zum Speichern und Weiterleiten von Nachrichten in verteilten Systemen verwendet. Es bietet eine gute Leistung in Bezug auf Benutzerfreundlichkeit, Skalierbarkeit und hohe Verfügbarkeit. Zu seinen besonderen Merkmalen gehören:

Zuverlässigkeit

Flexibles Routing

Unterstützt Nachrichtencluster

Hohe Verfügbarkeit

Unterstützt mehrere Protokolle (zusätzlich zur Unterstützung des AMQP-Protokolls werden auch andere Nachrichtenwarteschlangenprotokolle über Plug-Ins wie STOMP und MQTT unterstützt)

Unterstützung mehrsprachiger Clients

Verwaltungsschnittstelle bereitstellen

Tracking-Mechanismus bereitstellen

Plug-In-Mechanismus bereitstellen (RabbitMQ bietet viele Plug-Ins, und Sie können Schreiben Sie auch Ihre eigenen Plug-Ins)

Zusammenfassung:

Der größte Vorteil von RabbitMQ besteht darin, dass es eine relativ flexible Nachrichtenrouting-Strategie, hohe Verfügbarkeit, Zuverlässigkeit, umfangreiche Plug-Ins und mehrere Plattformen bietet Support und vollständige Dokumentation. Allerdings ist seine Implementierung aufgrund des AMQP-Protokolls selbst relativ umfangreich, was seinen Durchsatz im Vergleich zu anderen MQs (wie Kafka) benachteiligt.

ActiveMQ

1. ActiveMQ-Funktionen:

ActiveMQ ist eine von Apache entwickelte Open-Source-Messaging-Middleware, die für die Bereitstellung effizienter, skalierbarer und stabiler Anwendungen entwickelt wurde und sichere Messaging-Kommunikation auf Unternehmensebene. ActiveMQ implementiert JMS 1.1 und bietet viele zusätzliche Funktionen, wie JMX-Verwaltung, Master-Slave-Verwaltung, Nachrichtengruppenkommunikation, Nachrichtenpriorität, verzögerter Nachrichtenempfang, virtuelle Empfänger, Nachrichtenpersistenz, Überwachung der Nachrichtenwarteschlange usw. Die Hauptfunktionen sind wie folgt:

Unterstützt Clients und Protokolle in mehreren Sprachen wie Java, C, C++, C#, Ruby, Perl, Python, PHP usw., wie OpenWire, STOMP, AMQP , und MQTT-Protokolle.

Bietet erweiterte Funktionen wie Nachrichtengruppenkommunikation, Nachrichtenpriorität, verzögerter Nachrichtenempfang, virtuelle Empfänger und Nachrichtenpersistenz.

Vollständige Unterstützung der JMS 1.1- und J2EE 1.4-Spezifikationen (einschließlich Persistenz, verteilte Transaktionsnachrichten, Transaktionen)

Unterstützt das Spring-Framework, ActiveMQ kann über Spring-Konfigurationsdateien problemlos in Spring-Anwendungen eingebettet werden.

Bestanden gängige J2EE-Servertests wie TomEE, Geronimo, JBoss, GlassFish und WebLogic.

Vielfältige Verbindungsmethoden: ActiveMQ bietet eine Vielzahl von Verbindungsmethoden, z. B. In-VM, TCP, SSL, NIO, UDP, Multicast, JGroups, JXTA.

Unterstützt die schnelle Persistenz von Nachrichten durch die Verwendung von JDBC und Journal.

Entwickelt für Hochleistungscluster, Client-Server, Punkt-zu-Punkt-Kommunikation und andere Szenarien.

Bietet eine technologie- und sprachneutrale REST-API-Schnittstelle.

Unterstützt den Aufruf von ActiveMQ über AJAX.

ActiveMQ kann problemlos in WebService-Technologien wie CXF und Axis integriert werden, um zuverlässiges Messaging bereitzustellen.

kann als In-Memory-JMS-Anbieter verwendet werden, ideal für JMS-Unit-Tests.

Kafka

1.Kafka-Funktionen:

Kafka ist ein verteiltes Publish/Subscribe-Messaging-System, das zuerst von LinkedIn entwickelt wurde und später zum Top-System von Apache wurde -Level-Projekt. Seine Hauptmerkmale sind wie folgt:

Bietet einen hohen Durchsatz sowohl für die Veröffentlichung als auch für das Abonnement. (Kafkas Entwurfsziel besteht darin, Nachrichtenpersistenz mit einer Zeitkomplexität von O(1) bereitzustellen. Es kann eine konstante Zugriffsleistung auch für Daten über dem TB-Niveau garantieren, und zwar sogar auf sehr billigen kommerziellen Maschinen. Unterstützt die Übertragung von 100.000 Nachrichten pro Sekunde an eine einzelne Maschine)

Nachrichtenpersistenz. (Behalten Sie Nachrichten auf der Festplatte bei und können sie daher für den Batch-Verbrauch wie ETL sowie Echtzeitanwendungen verwenden. Datenverluste können verhindert werden, indem Daten auf der Festplatte gespeichert und repliziert werden.)

Verteilt. (Unterstützt die Nachrichtenpartitionierung und den verteilten Verbrauch zwischen Servern und stellt gleichzeitig die sequentielle Übertragung von Nachrichten innerhalb jeder Partition sicher. Der interne Produzent, Broker und Verbraucher sind alle verteilte Architekturen, was die Erweiterung nach außen erleichtert.)

Verwenden von Nachrichten nimmt den Pull-Modus an. (Der Status der verarbeiteten Nachricht wird auf der Verbraucherseite und nicht auf der Serverseite verwaltet. Der Broker ist zustandslos und der Verbraucher speichert den Offset selbst.)

Unterstützt Online- und Offline-Szenarien und unterstützt beide Offline-Szenarien Datenverarbeitung und Echtzeitdatenverarbeitung.

RocketMQ

1. RocketMQ-Funktionen:

RocketMQ ist eine verteilte Messaging-Middleware, die 2012 von Alibaba als Open-Source-Software entwickelt und später an die Apache Software Foundation gespendet wurde. und wurde am 25. September 2017 ein Apache-Top-Level-Projekt. Als inländische Middleware, die viele „Superprojekte“ wie Alibabas „Double 11“ erlebt hat und eine stabile und herausragende Leistung aufweist, wurde sie in den letzten Jahren aufgrund ihrer hohen Leistung, geringen Latenz und hohen Zuverlässigkeit von immer mehr inländischen Benutzern verwendet. Wird von Unternehmen verwendet. Seine Hauptmerkmale sind wie folgt:

Flexible Skalierbarkeit. (RocketMQ unterstützt natürlich Cluster und jede seiner vier Kernkomponenten (NameServer, Broker, Producer und Consumer) kann ohne einen einzigen Fehlerpunkt horizontal skaliert werden.)

Hat die Fähigkeit, umfangreiche Nachrichten zu akkumulieren. (RocketMQ verwendet das Nullkopie-Prinzip, um die Fähigkeit zu erreichen, extrem große Nachrichtenmengen anzusammeln. Es wird gesagt, dass ein einzelner Computer die Ansammlung von Hunderten Millionen Nachrichten unterstützen kann und nach der Ansammlung so vieler Nachrichten immer noch eine geringe Schreiblatenz beibehält )

Unterstützt sequentielle Nachrichten. (RocketMQ kann sicherstellen, dass Nachrichtenkonsumenten Nachrichten in der Reihenfolge konsumieren, in der sie gesendet werden. Sequentielle Nachrichten werden in global geordnete Nachrichten und lokal geordnete Nachrichten unterteilt. Es wird im Allgemeinen empfohlen, lokal geordnete Nachrichten zu verwenden, d. h. der Produzent sendet einen bestimmten Typ Anzahl der Nachrichten, um sie an dieselbe Warteschlange zu senden, um dies zu erreichen)

.

Unterstützt mehrere Nachrichtenfiltermethoden. (Die Nachrichtenfilterung ist in serverseitige Filterung und verbraucherseitige Filterung unterteilt. Beim Filtern auf der Serverseite kann die Filterung entsprechend den Anforderungen der Nachrichtenkonsumenten durchgeführt werden. Der Vorteil besteht darin, dass unnötige Nachrichtenübertragungen reduziert werden, und der Nachteil besteht darin Dies erhöht die Belastung des Nachrichtenservers. Die Filterung auf der Verbraucherseite ist vollständig an die jeweilige Anwendung angepasst. Der Nachteil besteht darin, dass viele nutzlose Nachrichten an die Nachrichtenkonsumenten übertragen werden 🎜>Transaktionsnachrichten unterstützen. (Neben der Unterstützung gewöhnlicher Nachrichten und sequenzieller Nachrichten unterstützt RocketMQ auch Transaktionsnachrichten. Diese Funktion bietet eine weitere Lösung für verteilte Transaktionen.)

Unterstützt den rückwirkenden Verbrauch. (Rückwirkender Verbrauch bedeutet, dass Nachrichten, die von Verbrauchern erfolgreich konsumiert wurden, aus geschäftlichen Gründen erneut konsumiert werden müssen. RocketMQ unterstützt den rückwirkenden Verbrauch nach Zeit. Die Zeitdimension ist auf Millisekunden genau und kann vorwärts oder rückwärts verfolgt werden.)

Weitere

FAQ

finden Sie auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonWas ist RPC-Middleware?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage