RabbitMQ

Schulung / Webinar

RabbitMQ bietet als Message Broker eine solide Grundlage für den Austausch von Nachrichten. RabbitMQ implementiert dazu in erster Linie das asynchrone Kommunikationsprotokoll AMQ.

Das RabbitMQ Projekt verwendet die Programmiersprache Erlang, die in der Telekomunikationsindustrie entwickelt wurde. Sie steht für Skalierbarkeit, Zuverlässigkeit sowie hohen Durchsatz unter Last. Das Framework OTP (Open Telecom Platform) steuert Fehlertoleranz, niedrige Latenz und native Verteiltheit bei.

Der asynchrone Nachrichtenaustausch über Messaging ermöglicht die Entkopplung von Sender und Empfänger. Die lose Kopplung von Services ist eine Voraussetzung für erfolgreiche Microservices Projekte.

RabbitMQ ist ein zuverlässiger, beliebter Message Broker mit zahlreichen Features. Dieses Seminar vermittelt die notwendigen Grundlagen und das Detailwissen, um RabbitMQ optimal einzusetzen.

Messaging Grundlagen

  • Lose Koppelung von Nachrichtenproduzent und -konsument
  • Was ist RabbitMQ?

Nachrichten und Queues

  • Aufbau einer Nachricht
  • Nützliche Messageheader
  • Verwendung von Queues für den Nachrichtaustausch
  • Softwarearchitektur mit Queues
  • Verwaltung von Exchanges, Queues und Bindings mit dem RabbitMQ

AMQP

  • Das AMQP Protokoll
  • AMQP mit RabbitMQ

Persistenz

  • Das Message Store Muster
  • Mnesia und Khepri
  • Quorum-Queues mit Ra
  • Extrem hoher Durchsatz mit RabbitMQ Streams

Exchanges

  • Die vier Standard-Varianten von Exchanges: Direct, Fanout, Topic und Headers
  • Default Exchange
  • Consistent Hashing Exchange mittels Plugin
  • JMS Topic Exchange mittels Plugin
  • Wann verwende ich welche Variante?

Clients

  • Advanced Message Queuing Protocol (AMQP)
  • Consumer und Producer mit Java realisieren

Konfiguration & Administration

  • Aufbau der rabbitmq.conf und advanced.config Dateien
  • Konfiguration der Plugins
  • Die Web Konsole
  • Logging
  • Dead Letter Queue

Fehlerbehandlung

  • Redelivery
  • Auslieferungsgarantie
  • Dead Letter Queue

Transaktionen

  • Wie beeinflusse ich die Quality of Service durch automatisches und manuelles Acknowledgement?
  • AMQP Transaktionen und Performance

Protokolle und Transport

  • Die Protokolle AMQP 0.9.1, AMQP 1.0, MQTT und Stomp im Überblick
  • Anbindung von Perl-, Phyton- oder C-basierten Clients mit dem Stomp Protokoll
  • Client Failover

Performanz

  • Wie viele Nachrichten kann der Broker verarbeiten?
  • Wie lange dauert die Zustellung einer Nachricht?
  • Wie wähle ich den richtigen Prefetch-Wert?

Performanz und Tuning

  • Einflußfaktoren
  • Speicherverbrauch
  • Netzwerk und TCP Tuning

Clustering

  • Hochverfügbarkeit, Ausfallsicherheit, Skalierbarkeit und Antwortzeitverhalten
  • Competing Consumers und parallele Verarbeitung
  • Lastverteilung mit Loadbalancing

Administration

  • Die Web Konsole

Monitoring

  • RabbitMQ mit Prometheus überwachen

Programmierung

  • Einführung in AMQP
  • Wie du mit der RabbitMQ Java Client API Message Consumer und Producer erstellen kannst

Enterprise Integration Patterns EIP

  • Message Broker
  • Message Expiration
  • Message Filter mit JMS Selektoren
  • Guaranteed Delivery
  • Idempotent Receiver
  • Invalid Message Channel
  • Verfolgen von Nachrichten mit der Correlation Id
  • Versenden großer Nachrichten mit dem Claim Check Muster

Sicherheit

  • Authentifikation über Passwort oder Zertifikat
  • Verschlüsselung mit SSL/TLS

Plattform

  • RabbitMQ Operator für Kubernetes

Architektur

  • Wie verändert sich eine Softwarearchitektur durch die Verwendung von Messaging?
  • Synchrones Request/Reply - braucht man das noch?
  • Welche Muster eignen sich?
  • Die Rolle von Messaging in einer Microservices Architektur

Routing mit Apache Camel

  • Integration mit ActiveMQ
  • EAI Patterns

Zielgruppe

Administratoren, Entwickler, Software Architekten

Vorkenntnisse

IT Grundlagen, Grundlagen in der Java Programmierung sind hilfreich, aber nicht notwendig.

Deine Vorteile

  • Sie lernen, wie Sie RabbitMQ optimal einsetzen können
  • Ihre 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 der von Broadcom Inc.

Für Nicht-Programmierer
Wir führen den RabbitMQ Kurs auch für Teilnehmer ohne Java-Kenntnisse durch. Das für das Verständnis der Beispiele notwendige Wissen wird im Seminar vermittelt.