AMQP-client voor Delphi & C++ Builder | eSeGeCe

AMQP-protocol

Advanced Message Queuing Protocol voor betrouwbare enterprise-messaging. Volledige ondersteuning voor AMQP 0.9.1 en 1.0, compatibel met RabbitMQ en Azure Service Bus.

Kort antwoord: het TsgcAMQPClient component verbindt Delphi- en C++ Builder-apps met AMQP-brokers en implementeert zowel AMQP 0.9.1 als AMQP 1.0 met channels, exchanges, queues, acknowledgments en transacties tegen RabbitMQ en Azure Service Bus.

Wat is AMQP?

AMQP is een open standaard voor enterprise-messaging die betrouwbare, interoperabele berichtaflevering biedt tussen verschillende platforms en implementaties.

Berichtwachtrijen van enterpriseniveau

AMQP definieert een wire-level protocol voor message-oriented middleware en garandeert daarmee echte interoperabiliteit tussen implementaties van verschillende leveranciers. Het verfijnde routeringsmodel met exchanges, queues en bindings ondersteunt complexe messagingpatronen zoals direct routing, topic-routing, fan-out en header-routing. sgcWebSockets implementeert zowel AMQP 0.9.1 (de breed ingezette versie van RabbitMQ) als AMQP 1.0 (de OASIS-standaard die Azure Service Bus gebruikt), zodat je maximale flexibiliteit hebt.

  • Wire-level protocol garandeert interoperabiliteit tussen leveranciers
  • Flexibele routering met exchanges, queues en bindings
  • Gegarandeerde berichtaflevering met acknowledgments
  • Zowel AMQP 0.9.1 als 1.0 ondersteund
PRODUCER EXCH Q1 Q2 CONSUMER

AMQP-functies

Robuuste messagingfuncties voor missiekritische toepassingen.

Betrouwbare berichtaflevering

Berichten gaan nooit verloren dankzij publisher confirms en consumer acknowledgments die end-to-end afleveringsgaranties bieden.

Exchange-/queue-/binding-model

Flexibele routering via direct-, topic-, fanout- en headers-exchanges die met configureerbare routing keys aan queues zijn gekoppeld.

Berichtbevestiging

Consumers bevestigen verwerkte berichten expliciet. Onbevestigde berichten worden automatisch opnieuw in de wachtrij geplaatst voor herlevering.

Transacties

Groepeer publish- en acknowledge-operaties in atomische transacties die allemaal slagen of allemaal worden teruggedraaid.

Flow control

Ingebouwde flow control voorkomt dat snelle producers trage consumers overbelasten en zorgt zo voor stabiele systeemprestaties.

Channelmultiplexing

Meerdere logische channels over één TCP-verbinding, wat de verbindingsoverhead verlaagt en de isolatie behoudt.

RabbitMQ & Azure Service Bus

Getest en geverifieerd met RabbitMQ (AMQP 0.9.1) en Azure Service Bus (AMQP 1.0) voor productie-deployments.

AMQP-toepassingen

Missiekritische messagingscenario's waarin betrouwbaarheid en interoperabiliteit belangrijk zijn.

Verwerking van financiële transacties

Verwerk financiële transacties met gegarandeerde aflevering en exactly-once semantiek voor bank- en betaalsystemen.

Orderbeheer

Beheer order-workflows met betrouwbare message queuing tussen orderinvoer, fulfilment, verzending en notificatiesystemen.

Enterprise service bus

Bouw een enterprise service bus die uiteenlopende systemen verbindt met betrouwbare, asynchrone berichtaflevering.

Distributed computing

Verdeel werk over meerdere verwerkingsnodes met taakwachtrijen en patronen voor resultaatverzameling.

Audit logging

Vang audit-gebeurtenissen op en stuur ze naar logsystemen met gegarandeerde aflevering, zodat er geen audittrail-entries verloren gaan.

Delphi AMQP-voorbeeld

Verbind met een AMQP-broker, declareer queues en wissel berichten uit.

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 := '/';

  // Set up event handlers
  AMQPClient.OnAMQPConnect := OnAMQPConnect;
  AMQPClient.OnAMQPMessage := OnAMQPMessage;
  AMQPClient.Connect;
end;

procedure TForm1.OnAMQPConnect(Sender: TObject);
begin
  // Open a channel
  AMQPClient.OpenChannel(1);

  // Declare a queue
  AMQPClient.DeclareQueue(1, 'orders',
    False, True, False, False);

  // Start consuming messages
  AMQPClient.BasicConsume(1, 'orders',
    'consumer-1', False, False, False, False);
end;

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

  // Acknowledge the message
  AMQPClient.BasicAck(aChannel, aMessage.DeliveryTag, False);
end;

procedure TForm1.ButtonPublishClick(Sender: TObject);
begin
  // Publish a message to the default exchange
  AMQPClient.BasicPublish(1, '', 'orders',
    '{"orderId": 67890, "total": 99.95}');
end;

AMQP-toepassingen

Veelgestelde vragen over AMQP-message-queuing vanuit Delphi en C++ Builder.

Maak een TsgcAMQPClient aan, stel de Host, Port, Authentication en VirtualHost in en roep dan Connect aan. Vanuit de OnAMQPConnect-event open je een channel met OpenChannel, declareer je een queue met DeclareQueue en begin je met ontvangen via BasicConsume. Verstuur berichten met BasicPublish en bevestig ze met BasicAck.
De client implementeert zowel AMQP 0.9.1, de breed ingezette versie die door RabbitMQ wordt gebruikt, als AMQP 1.0, de OASIS-standaard die door Azure Service Bus wordt gebruikt. Hij is getest en geverifieerd tegen RabbitMQ en Azure Service Bus voor productieomgevingen, en het wire-level-protocol garandeert interoperabiliteit met andere compatibele brokers.
Ja. Publisher confirms en consumer acknowledgments bieden end-to-end bezorgingsgaranties, niet-bevestigde berichten worden automatisch opnieuw in de wachtrij geplaatst, en je kunt publish- en acknowledge-operaties groeperen in atomaire transacties. Het exchange-, queue- en binding-model ondersteunt direct-, topic-, fanout- en headers-routing, met channel-multiplexing over één enkele verbinding.
sgcWebSockets ondersteunt Delphi 7 tot en met de nieuwste Delphi-release en de bijbehorende C++ Builder-versies, op Windows, macOS, Linux, iOS en Android. Download de gratis proefversie om de AMQP-client in je eigen project te evalueren.

Klaar om aan de slag te gaan met AMQP?

Download de gratis proefversie en maak binnen enkele minuten verbinding met enterprise-message-brokers.