Wissen von A bis Z

Azure Service Bus

Der Azure Service Bus ist der digitale Postbote, der niemals Feierabend macht und jedes Paket garantiert zustellt.

Azure Service Bus ist der Enterprise-Messaging-Dienst der Microsoft-Azure-Plattform. Er stellt zuverlässige, transaktionale Messaging-Primitiven bereit — namentlich Queues (Punkt-zu-Punkt) und Topics mit Subscriptions (Publish/Subscribe) — und implementiert das offene Protokoll AMQP 1.0 (ISO/IEC 19464) sowie alternative HTTPS-Endpunkte. Verfügbar ist der Dienst in den Tiers Basic (nur Queues), Standard (Queues und Topics, klassische Brokerfunktionen) und Premium (dedizierte Messaging-Units, JMS 2.0, höhere Durchsatzgarantien, geo-disaster recovery, Customer-Managed Keys).

Eingesetzt wird Service Bus für die lose Kopplung von Diensten in verteilten Systemen: asynchrone Auftragsverarbeitung, Workflow-Choreografie zwischen Microservices, Outbox- und Saga-Pattern in Event-getriebenen Architekturen, Brücken zwischen Cloud- und On-Premises-Systemen sowie als zuverlässige Eingangs- und Ausgangsschicht für Azure Functions oder Azure Logic Apps. Funktionen wie Dead-Letter-Queues, Sessions (FIFO innerhalb einer Session), geplante Nachrichten, Duplicate Detection, Auto-Forwarding, Topic-Filter (SQL- und Korrelationsfilter) und transaktionale Sende-/Empfangsoperationen über mehrere Entitäten machen den Dienst zu einem klassischen Message-Broker.

Mit Service Bus können sehr einfach Temporal Entkoppelte Systeme entwicklet werden. Synchrone HTTP-Aufrufe zwischen Diensten erzeugen harte Verfügbarkeitsabhängigkeiten und Lastspitzen-Sensitivität; Service Bus puffert Last, garantiert mindestens-einmal-Zustellung (At-Least-Once) und ermöglicht über Sessions auch streng sortierte Verarbeitung pro Geschäftsprozess. Im Vergleich zu Azure Event Hubs (Streaming) oder Azure Storage Queues (einfach, kostengünstig, ohne erweiterte Brokerfunktionen) positioniert sich Service Bus als der ‚schwergewichtige Broker‘ im Azure-Messaging-Portfolio.

Historisch geht Service Bus auf den ‚AppFabric Service Bus‘ zurück, der erstmals 2010 als Bestandteil der Windows-Server-AppFabric- und Azure-Familie verfügbar wurde. Wichtige Meilensteine sind die Einführung von Topics und Subscriptions (2011), AMQP-1.0-Unterstützung (2013), der Premium-Tier (2015), JMS-2.0-Unterstützung im Premium-Tier (2021) sowie die durchgehende Modernisierung der SDKs auf Azure.Messaging.ServiceBus (Track 2) ab 2020.

Eingeführt wurde Service Bus von Microsoft, lange Zeit unter Federführung von Clemens Vasters (auch bekannt als "unser Mann in Redmond"), der die Messaging-Strategie der Plattform maßgeblich geprägt hat und parallel im OASIS-Komitee an der AMQP-1.0-Standardisierung beteiligt war. Die Entscheidung, AMQP 1.0 statt der weiter verbreiteten Version 0-9-1 (RabbitMQ) zu unterstützen, war zum Zeitpunkt der Einführung umstritten, hat sich aber als strategisch richtig erwiesen — AMQP 1.0 ist heute das Standardprotokoll vieler Enterprise-Broker und wird unter anderem von IBM MQ, ActiveMQ Artemis und SwiftMQ unterstützt, was Service-Bus-Migrationen aus diesen Systemen vergleichsweise reibungsarm macht.

Zurück