Apache ActiveMQ – Messaging mit dem JMS Message Broker

Schulung / Webinar

Apache ActiveMQ ist ein verbreiteter und bewährter Message Broker. Er setzt auf den Java Message Service (JMS) und bietet zahlreiche Features und Konfigurationsmöglichkeiten.

Asynchroner Nachrichtenaustausch über Messaging entkoppelt Sender und Empfänger. Diese lose Kopplung von Services ist eine solide Grundlage für verteilte Anwendungen und die Integration von Systemen.

In dieser Schulung lernst du die Grundlagen und das nötige Wissen, um ActiveMQ optimal einzusetzen. In zahlreichen praxisbezogenen Übungen arbeitest du an Themen wie Queues und Topics, Transaktionen, Clustering, Sicherheit und Redelivery.

Messaging Grundlagen

  • Lose Kopplung über Nachrichten
  • Was ist ActiveMQ?
  • Wie Quality of Service Entwicklern und Administratoren das Leben erleichtert

Nachrichten und Queues

  • Aufbau einer Nachricht
  • Nützliche Message-Header
  • Queues für den Nachrichtenaustausch
  • Softwarearchitektur mit Queues
  • Verwaltung von Queues mit ActiveMQ

Topics

  • Durable Subscriber
  • Wann verwende ich eine Queue und wann ein Topic?

Clients und Programmierung

  • Einführung in den Java Message Service (JMS)
  • Consumer und Producer mit Java realisieren
  • Message Consumer und Producer mit der ActiveMQ API erstellen

Persistenz

  • Das Message Store-Muster
  • KahaDB oder LevelDB Store
  • Journaling und Caching

Konfiguration und Administration

  • Aufbau der activemq.xml
  • Spring-Grundwissen für die ActiveMQ-Konfiguration
  • Die Web-Konsole
  • Logging mit log4j
  • Mit Advisory Topics auf dem Laufenden bleiben

Fehlerbehandlung

  • Redelivery
  • Dead Letter Queue

Transaktionen

  • AUTO- und CLIENT-Acknowledge
  • JMS-Transaktionen
  • Message-orientierte Middleware und Transaktionen

Protokolle und Transport

  • Konnektoren für VM, TCP, NIO, SSL und HTTP
  • Die Protokolle OpenWire, MQTT, AMQP und STOMP im Überblick
  • AMQP oder OpenWire?
  • Anbindung von Python-, Perl- oder C-Clients über STOMP
  • Client Failover

Performanz und Tuning

  • Wie viele Nachrichten verarbeitet der Broker?
  • Wie lange dauert die Zustellung einer Nachricht?
  • Einflussfaktoren und Speicherverbrauch
  • Netzwerk- und TCP-Tuning

Clustering

  • Hochverfügbarkeit, Ausfallsicherheit und Skalierbarkeit
  • Competing Consumers und parallele Verarbeitung
  • Lastverteilung mit Loadbalancing
  • Store and Forward mit einem Network of Brokers (Apache Zookeeper)

Monitoring

  • ActiveMQ mit JMX überwachen
  • Überwachung mit Nagios

Enterprise Integration Patterns

  • Message Broker und Message Filter mit JMS-Selektoren
  • 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

Sicherheit

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

Architektur und Integration

  • Wie verändert sich die Softwarearchitektur durch Messaging?
  • Synchrones Request/Reply – braucht man das noch?
  • Welche Muster eignen sich?
  • Die Rolle von Messaging in einer Microservices-Architektur
  • Routing und Integration mit Apache Camel

Zielgruppe

Administratoren, Entwickler und Softwarearchitekten

Vorkenntnisse

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

Ziele

  • Du verstehst die Konzepte von JMS, Queues, Topics und Transaktionen
  • Du kannst Consumer und Producer mit der ActiveMQ API entwickeln
  • Du kannst ActiveMQ sicher konfigurieren, betreiben und im Cluster skalieren

Deine Vorteile

  • Du lernst, wie du ActiveMQ optimal an deine Anforderungen anpasst
  • Deine Architektur wird durch lose Kopplung robuster

Dauer

2 Tage

Kursunterlage

Handouts aller in der Schulung präsentierten Folien sowie ein Skript mit detaillierten Übungen.

Für Administratoren

Du arbeitest im Betrieb? Den ActiveMQ Kurs führen wir auch für Administratoren ohne Java-Kenntnisse durch.

Weitere Messaging-Schulungen

In der Apache Camel Schulung erfährst du, wie du Anwendungen über einen Broker mit den Enterprise Integration Patterns verbindest.