AMQP-Protokoll

Advanced Message Queuing Protocol für zuverlässiges Enterprise-Messaging. Volle Unterstützung für AMQP 0.9.1 und 1.0, kompatibel mit RabbitMQ und Azure Service Bus.

Was ist AMQP?

AMQP ist ein offener Standard für Enterprise-Messaging, der zuverlässige, interoperable Nachrichtenzustellung über verschiedene Plattformen und Implementierungen hinweg bietet.

Message Queuing auf Unternehmensniveau

AMQP definiert ein Wire-Level-Protokoll für nachrichtenorientierte Middleware und sichert echte Interoperabilität zwischen Implementierungen verschiedener Anbieter. Sein ausgefeiltes Routing-Modell auf Basis von Exchanges, Queues und Bindings unterstützt komplexe Messaging-Muster, darunter Direct Routing, topicbasiertes Routing, Fan-out und headerbasiertes Routing. sgcWebSockets implementiert sowohl AMQP 0.9.1 (die weit verbreitete, von RabbitMQ genutzte Version) als auch AMQP 1.0 (den von Azure Service Bus genutzten OASIS-Standard) und bietet dir maximale Flexibilität.

  • Wire-Level-Protokoll garantiert herstellerübergreifende Interoperabilität
  • Flexibles Routing mit Exchanges, Queues und Bindings
  • Garantierte Nachrichtenzustellung mit Acknowledgments
  • AMQP 0.9.1 und 1.0 unterstützt
PRODUCER EXCH Q1 Q2 CONSUMER

AMQP-Funktionen

Industrietaugliche Messaging-Funktionen für unternehmenskritische Anwendungen.

Zuverlässige Nachrichtenzustellung

Nachrichten gehen niemals verloren — Publisher Confirms und Consumer Acknowledgments stellen Ende-zu-Ende-Zustellgarantien sicher.

Exchange-/Queue-/Binding-Modell

Flexibles Routing über Direct-, Topic-, Fanout- und Headers-Exchanges, die mit konfigurierbaren Routing Keys an Queues gebunden sind.

Nachrichtenbestätigung

Consumer bestätigen verarbeitete Nachrichten ausdrücklich. Nicht bestätigte Nachrichten werden automatisch zur erneuten Zustellung in die Queue zurückgestellt.

Transaktionen

Fasse Publish- und Acknowledge-Operationen in atomare Transaktionen zusammen, die entweder vollständig gelingen oder vollständig zurückgerollt werden.

Flusssteuerung

Eingebaute Flusssteuerung verhindert, dass schnelle Producer langsame Consumer überlasten, und sichert stabile Systemleistung.

Channel-Multiplexing

Mehrere logische Channels über eine einzige TCP-Verbindung — reduziert Verbindungsaufwand bei gleichzeitiger Isolation.

RabbitMQ & Azure Service Bus

Getestet und verifiziert mit RabbitMQ (AMQP 0.9.1) und Azure Service Bus (AMQP 1.0) für Produktivdeployments.

AMQP-Anwendungsfälle

Unternehmenskritische Messaging-Szenarien, in denen Zuverlässigkeit und Interoperabilität entscheidend sind.

Verarbeitung von Finanztransaktionen

Verarbeite Finanztransaktionen mit garantierter Zustellung und Exactly-once-Semantik für Banken- und Zahlungssysteme.

Auftragsverwaltung

Verwalte Auftragsworkflows mit zuverlässigem Message Queuing zwischen Auftragserfassung, Fulfillment, Versand und Benachrichtigungssystemen.

Enterprise Service Bus

Baue einen Enterprise Service Bus, der unterschiedliche Systeme über zuverlässige, asynchrone Nachrichtenzustellung verbindet.

Verteiltes Rechnen

Verteile Arbeit auf mehrere Verarbeitungsknoten mithilfe von Task-Queues und Mustern zur Ergebniserfassung.

Audit-Logging

Erfasse und leite Audit-Ereignisse mit garantierter Zustellung an Logging-Systeme weiter — kein Eintrag im Audit Trail geht verloren.

Delphi-AMQP-Beispiel

Verbinde dich mit einem AMQP-Broker, deklariere Queues und tausche Nachrichten aus.

uses
  sgcAMQP_Client, sgcAMQP_Classes;

var
  AMQPClient: TsgcAMQPClient;

procedure TForm1.FormCreate(Sender: TObject);
begin
  AMQPClient := TsgcAMQPClient.Create(nil);
  AMQPClient.Host := 'rabbitmq.example.com';
  AMQPClient.Port := 5672;
  AMQPClient.Authentication.Username := 'guest';
  AMQPClient.Authentication.Password := 'guest';
  AMQPClient.VirtualHost := '/';

  // Event-Handler einrichten
  AMQPClient.OnAMQPConnect := OnAMQPConnect;
  AMQPClient.OnAMQPMessage := OnAMQPMessage;
  AMQPClient.Connect;
end;

procedure TForm1.OnAMQPConnect(Sender: TObject);
begin
  // Channel öffnen
  AMQPClient.OpenChannel(1);

  // Queue deklarieren
  AMQPClient.DeclareQueue(1, 'orders',
    False, True, False, False);

  // Nachrichten konsumieren
  AMQPClient.BasicConsume(1, 'orders',
    'consumer-1', False, False, False, False);
end;

procedure TForm1.OnAMQPMessage(Sender: TObject;
  aChannel: Integer; aMessage: TsgcAMQPMessage);
begin
  // Nachricht verarbeiten
  Memo1.Lines.Add('Received: ' + aMessage.Body);

  // Nachricht bestätigen
  AMQPClient.BasicAck(aChannel, aMessage.DeliveryTag, False);
end;

procedure TForm1.ButtonPublishClick(Sender: TObject);
begin
  // Nachricht an das Default-Exchange veröffentlichen
  AMQPClient.BasicPublish(1, '', 'orders',
    '{"orderId": 67890, "total": 99.95}');
end;

Bereit, mit AMQP zu starten?

Lade die kostenlose Testversion herunter und verbinde dich in wenigen Minuten mit Enterprise-Message-Brokern.