RabbitMQ – Message Broker mit AMQP

Schulung / Webinar

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.

Weitere Messaging-Schulungen

Erfahre in der Apache Camel Schulung wie du Anwendungen über einen Broker verbindest.