RabbitMQ ist ein zuverlässiger und weit verbreiteter Message Broker und bietet eine solide Grundlage für den Austausch von Nachrichten. Als Protokoll setzt er in erster Linie auf das standardisierte AMQP.
RabbitMQ selbst ist in Erlang geschrieben, einer Sprache aus der Telekommunikationsindustrie. Zusammen mit dem OTP-Framework (Open Telecom Platform) steht sie für Skalierbarkeit, Fehlertoleranz und hohen Durchsatz unter Last.
In der Schulung lernst du die Grundlagen und das nötige Wissen, um RabbitMQ optimal einzusetzen. In zahlreichen Übungen baust du wertvolle Erfahrung zu Topics, Clustering und Zuverlässigkeit auf.
Messaging Grundlagen
- Lose Kopplung von Nachrichtenproduzent und -konsument
- Was ist RabbitMQ?
- Erlang und das OTP-Framework
- Wann lohnt sich asynchrones Messaging?
Nachrichten und Queues
- Aufbau einer Nachricht
- Nützliche Message-Header
- Queues für den Nachrichtenaustausch
- Softwarearchitektur mit Queues
- Verwaltung von Exchanges, Queues und Bindings
Exchanges und Routing
- Die vier Standard-Varianten: Direct, Fanout, Topic und Headers
- Default Exchange
- Consistent Hashing Exchange per Plugin
- JMS Topic Exchange per Plugin
- Wann verwende ich welche Variante?
AMQP und Protokolle
- Das AMQP-Protokoll im Detail
- AMQP 0.9.1, AMQP 1.0, MQTT und STOMP im Überblick
- Anbindung von Python-, Perl- oder C-Clients über STOMP
- Client Failover
Clients und Programmierung
- Consumer und Producer mit der RabbitMQ Java Client API
- Quality of Service über automatisches und manuelles Acknowledgement
- AMQP-Transaktionen und ihre Auswirkung auf die Performanz
Enterprise Integration Patterns
- Message Broker und Message Filter
- Message Expiration und Guaranteed Delivery
- Idempotent Receiver und Invalid Message Channel
- Nachrichten verfolgen mit der Correlation Id
- Große Nachrichten mit dem Claim Check-Muster
Persistenz und Durchsatz
- Das Message Store-Muster
- Mnesia und Khepri
- Quorum Queues mit Ra
- Extrem hoher Durchsatz mit RabbitMQ Streams
Zuverlässigkeit und Fehlerbehandlung
- Redelivery und Auslieferungsgarantie
- Dead Letter Queue
- Den richtigen Prefetch-Wert wählen
Konfiguration und Administration
- Aufbau der rabbitmq.conf und advanced.config
- Konfiguration der Plugins
- Die Web-Konsole
- Logging
Performanz und Tuning
- Wie viele Nachrichten verarbeitet der Broker?
- Wie lange dauert die Zustellung einer Nachricht?
- Speicherverbrauch und Einflussfaktoren
- Netzwerk- und TCP-Tuning
Clustering und Hochverfügbarkeit
- Hochverfügbarkeit, Ausfallsicherheit und Skalierbarkeit
- Competing Consumers und parallele Verarbeitung
- Lastverteilung mit Loadbalancing
- Monitoring mit Prometheus
Sicherheit
- Authentifizierung über Passwort oder Zertifikat
- Verschlüsselung mit SSL/TLS
Architektur und Integration
- RabbitMQ Operator für Kubernetes
- Routing und Integration mit Apache Camel
- Die Rolle von Messaging in einer Microservices-Architektur
- Synchrones Request/Reply – braucht man das noch?
- Welche Muster eignen sich wofür?
Zielgruppe
Administratoren, Entwickler und Softwarearchitekten
Vorkenntnisse
IT-Grundlagen. Grundlagen in der Java-Programmierung sind hilfreich, aber nicht notwendig.
Ziele
- Du verstehst die Konzepte von AMQP, Exchanges, Queues und Bindings
- Du kannst Consumer und Producer mit der Java Client API entwickeln
- Du kannst RabbitMQ sicher konfigurieren, betreiben und im Cluster skalieren
Deine Vorteile
- Du lernst, wie du RabbitMQ optimal einsetzt
- Deine Software-Architektur wird durch lose Kopplung robuster
Dauer
2 Tage
Kursunterlage
Handouts aller in der Schulung präsentierten Folien sowie ein Skript mit detaillierten Übungen.
RabbitMQ ist ein eingetragenes Warenzeichen von Broadcom Inc.