RabbitMQ: Beispiele für die Nutzung von RabbitMQ
Diese Dokumentation ist Teil des Einführung-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Einführung in Stackhero für RabbitMQ.
Stellen Sie sich eine Anwendung vor, die es Benutzern ermöglicht, alle Rechnungen des vergangenen Jahres mit einer einzigen Aktion herunterzuladen. Diese Aufgabe erfordert das gleichzeitige Erstellen mehrerer PDF-Rechnungen, was sehr zeitaufwändig sein kann. Mit RabbitMQ kann eine Anwendung 12 Nachrichten mit Rechnungsdetails an ein topic senden. Ein dediziertes Rechnungserstellungssystem wird dann auf diese Nachrichten reagieren, die PDF-Dateien erstellen und sie an RabbitMQ zurücksenden. Anschließend ruft die App die PDFs ab und liefert sie an den Kunden.
Die wahre Stärke dieses Systems liegt in seiner Fähigkeit, mehrere Skripte gleichzeitig auszuführen, um Rechnungen zu erstellen. Mit demselben Code können Sie diese 12 Rechnungen parallel verarbeiten! Stellen Sie sich vor, 100 Benutzer fordern gleichzeitig ihre letzten 12 Rechnungen an. Kein Problem, das System ist jetzt in der Lage, zu skalieren und zahlreiche PDF-Dateien gleichzeitig zu verarbeiten!
Angenommen, Sie möchten diese Rechnungen per E-Mail versenden. Sie können ein Skript erstellen, das eine E-Mail-Adresse und eine PDF-Datei als Eingaben akzeptiert und dann das PDF an die angegebene E-Mail sendet. Verbinden Sie dieses E-Mail-Skript mit RabbitMQ und konfigurieren Sie Ihren Rechnungsgenerator so, dass die PDF-Dateien an das topic "emails" weitergeleitet werden. So einfach ist das. Die App kann nun effizient Dutzende von Rechnungen per E-Mail generieren und versenden.
Zuverlässigkeit ist ein weiterer wichtiger Vorteil. Wenn ein E-Mail-Skript unerwartet abstürzt, während es eine Rechnung sendet, stellt RabbitMQ sicher, dass die Rechnung nicht verloren geht. Ein anderes E-Mail-Skript kann die Aufgabe übernehmen und nahtlos abschließen, wodurch die Benutzerzufriedenheit erhalten bleibt. RabbitMQ stärkt sowohl die Zuverlässigkeit als auch die Konsistenz.
Es gibt unzählige Anwendungsfälle. Wenn Sie mehrere Systeme oder Anwendungen haben, die eine zuverlässige Kommunikation erfordern, oder wenn Sie zeitaufwändige Aufgaben an andere Systeme delegieren müssen, könnte RabbitMQ die Lösung sein, die Sie benötigen.
Beispiel für die Nutzung von RabbitMQ in Mitfahr- oder Essensliefer-Apps
In Apps wie Uber oder Lyft, wenn ein Benutzer eine Fahrt anfordert, werden mehrere Informationen angezeigt:
- Der Preis der Fahrt
- Die Dauer der Fahrt
- Die geschätzte Abholzeit
- Die Route
Diese Komponenten können in separate Dienste aufgeteilt werden, wobei RabbitMQ die Kommunikation zwischen den Diensten erleichtert. Wenn ein Benutzer eine Fahrt anfordert, werden der Startpunkt und das Ziel an diese Dienste gesendet, die die erforderlichen Daten parallel berechnen. Die Ergebnisse werden dann dem Benutzer angezeigt, sobald sie verfügbar sind. Wenn die Berechnung der Fahrtdauer länger dauert, werden die verbleibenden Informationen dennoch schnell angezeigt, um die Benutzerfrustration zu minimieren.
Ähnlich ist es in Apps wie GrubHub oder Deliveroo, wenn ein Benutzer Essen auswählt, werden mehrere Details angezeigt:
- Verfügbarkeit der Speisen
- Geschätzte Lieferzeit
- Gesamtkorbpreis
Wie im Uber/Lyft-Beispiel können diese Aspekte von separaten Diensten verwaltet werden, die RabbitMQ zur Verwaltung des Nachrichtenaustauschs verwenden.