Heim häufiges Problem Was ist RPC-Middleware?

Was ist RPC-Middleware?

Jan 07, 2020 am 09:34 AM
rpc 中间件

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Lösung für die Unfähigkeit, eine Verbindung zum RPC-Server herzustellen und den Desktop nicht aufzurufen Lösung für die Unfähigkeit, eine Verbindung zum RPC-Server herzustellen und den Desktop nicht aufzurufen Feb 18, 2024 am 10:34 AM

Was soll ich tun, wenn der RPC-Server nicht verfügbar ist und auf dem Desktop nicht darauf zugegriffen werden kann? In den letzten Jahren sind Computer und das Internet in jeden Winkel unseres Lebens vorgedrungen. Als Technologie für zentralisierte Datenverarbeitung und gemeinsame Nutzung von Ressourcen spielt Remote Procedure Call (RPC) eine entscheidende Rolle in der Netzwerkkommunikation. Manchmal kann es jedoch vorkommen, dass der RPC-Server nicht verfügbar ist und der Desktop nicht aufgerufen werden kann. In diesem Artikel werden einige mögliche Ursachen für dieses Problem beschrieben und Lösungen bereitgestellt. Zuerst müssen wir verstehen, warum der RPC-Server nicht verfügbar ist. RPC-Server ist ein

Was ist das Prinzip der Tomcat-Middleware? Was ist das Prinzip der Tomcat-Middleware? Dec 27, 2023 pm 04:40 PM

Das Prinzip der Tomcat-Middleware wird basierend auf Java Servlet- und Java EE-Spezifikationen implementiert. Als Servlet-Container ist Tomcat für die Verarbeitung von HTTP-Anfragen und -Antworten und die Bereitstellung der Laufumgebung für Webanwendungen verantwortlich. Die Prinzipien der Tomcat-Middleware umfassen hauptsächlich: 1. Container-Modell; 3. Servlet-Verarbeitungsmechanismus; Technologie; 9. Eingebetteter Modus usw.

So verwenden Sie Middleware zur Datenbeschleunigung in Laravel So verwenden Sie Middleware zur Datenbeschleunigung in Laravel Nov 02, 2023 am 09:40 AM

Verwendung von Middleware zur Datenbeschleunigung in Laravel Einführung: Bei der Entwicklung von Webanwendungen mit dem Laravel-Framework ist die Datenbeschleunigung der Schlüssel zur Verbesserung der Anwendungsleistung. Middleware ist eine wichtige Funktion von Laravel, die Anfragen verarbeitet, bevor sie den Controller erreichen oder bevor die Antwort zurückgegeben wird. Dieser Artikel konzentriert sich auf die Verwendung von Middleware zur Datenbeschleunigung in Laravel und stellt spezifische Codebeispiele bereit. 1. Was ist Middleware? Middleware ist ein Mechanismus, der im Laravel-Framework verwendet wird

So handhaben Sie die Formularvalidierung mithilfe von Middleware in Laravel So handhaben Sie die Formularvalidierung mithilfe von Middleware in Laravel Nov 02, 2023 pm 03:57 PM

Für die Verwendung von Middleware zur Formularvalidierung in Laravel sind spezifische Codebeispiele erforderlich. Einführung: In Laravel ist die Formularvalidierung eine sehr häufige Aufgabe. Um die Gültigkeit und Sicherheit der von den Nutzern eingegebenen Daten zu gewährleisten, überprüfen wir in der Regel die im Formular übermittelten Daten. Laravel bietet eine praktische Formularvalidierungsfunktion und unterstützt auch die Verwendung von Middleware zur Formularvalidierung. In diesem Artikel wird detailliert beschrieben, wie Middleware für die Formularvalidierung in Laravel verwendet wird, und es werden spezifische Codebeispiele bereitgestellt.

So verwenden Sie Middleware für die Antworttransformation in Laravel So verwenden Sie Middleware für die Antworttransformation in Laravel Nov 03, 2023 am 09:57 AM

So verwenden Sie Middleware für die Antwortkonvertierung in Laravel Middleware ist eine der sehr leistungsstarken und praktischen Funktionen im Laravel-Framework. Es ermöglicht uns, Anfragen und Antworten zu verarbeiten, bevor die Anfrage in den Controller gelangt oder bevor die Antwort an den Kunden gesendet wird. In diesem Artikel werde ich zeigen, wie man Middleware für die Antworttransformation in Laravel verwendet. Stellen Sie vor dem Start sicher, dass Sie Laravel installiert und ein neues Projekt erstellt haben. Jetzt folgen wir diesen Schritten: Erstellen Sie eine neue Middleware. Öffnen Sie

So verwenden Sie Middleware für die geplante Aufgabenplanung in Laravel So verwenden Sie Middleware für die geplante Aufgabenplanung in Laravel Nov 02, 2023 pm 02:26 PM

So verwenden Sie Middleware für die geplante Aufgabenplanung in Laravel. Einführung: Laravel ist ein beliebtes PHP-Open-Source-Framework, das praktische und leistungsstarke Tools zum Entwickeln von Webanwendungen bereitstellt. Eine der wichtigen Funktionen sind geplante Aufgaben, die es Entwicklern ermöglichen, bestimmte Aufgaben in bestimmten Intervallen auszuführen. In diesem Artikel stellen wir vor, wie Sie Middleware verwenden, um die geplante Aufgabenplanung von Laravel zu implementieren, und stellen spezifische Codebeispiele bereit. Vorbereitung der Umgebung Bevor wir beginnen, müssen wir uns vergewissern

So verwenden Sie Middleware zur Datenwiederherstellung in Laravel So verwenden Sie Middleware zur Datenwiederherstellung in Laravel Nov 02, 2023 pm 02:12 PM

Laravel ist ein beliebtes PHP-Webanwendungs-Framework, das viele schnelle und einfache Möglichkeiten zum Erstellen effizienter, sicherer und skalierbarer Webanwendungen bietet. Bei der Entwicklung von Laravel-Anwendungen müssen wir häufig die Frage der Datenwiederherstellung berücksichtigen, d. h. wie wir Daten wiederherstellen und den normalen Betrieb der Anwendung im Falle eines Datenverlusts oder einer Beschädigung sicherstellen können. In diesem Artikel stellen wir die Verwendung der Laravel-Middleware zur Implementierung von Datenwiederherstellungsfunktionen vor und stellen spezifische Codebeispiele bereit. 1. Was ist Lara?

So verwenden Sie Middleware zum Einrichten der domänenübergreifenden Ressourcenfreigabe (CORS) im Slim-Framework So verwenden Sie Middleware zum Einrichten der domänenübergreifenden Ressourcenfreigabe (CORS) im Slim-Framework Jul 30, 2023 pm 08:34 PM

So richten Sie Cross-Origin Resource Sharing (CORS) mithilfe von Middleware im Slim-Framework ein. Cross-Origin Resource Sharing (CORS) ist ein Mechanismus, der es dem Server ermöglicht, einige zusätzliche Informationen im HTTP-Antwortheader festzulegen, um dem Browser mitzuteilen, ob Cross erlaubt ist -Domain-Anfragen. In einigen Projekten mit Front-End- und Back-End-Trennung kann der CORS-Mechanismus verwendet werden, um die domänenübergreifende Anforderung des Front-Ends für die Back-End-Schnittstelle zu realisieren. Wenn wir das Slim-Framework zum Entwickeln der REST-API verwenden, können wir Middleware (Middleware) verwenden.