Protocollo AMQP
Advanced Message Queuing Protocol per il messaging enterprise affidabile. Supporto completo di AMQP 0.9.1 e 1.0, compatibile con RabbitMQ e Azure Service Bus.
Advanced Message Queuing Protocol per il messaging enterprise affidabile. Supporto completo di AMQP 0.9.1 e 1.0, compatibile con RabbitMQ e Azure Service Bus.
AMQP è uno standard aperto per il messaging enterprise che garantisce un recapito dei messaggi affidabile e interoperabile tra piattaforme e implementazioni diverse.
AMQP definisce un protocollo a livello wire per i middleware orientati ai messaggi, garantendo una vera interoperabilità tra le implementazioni dei diversi vendor. Il suo sofisticato modello di routing basato su exchange, code e binding supporta pattern di messaging complessi, fra cui direct routing, topic-based routing, fan-out e header-based routing. sgcWebSockets implementa sia AMQP 0.9.1 (la versione largamente diffusa usata da RabbitMQ) sia AMQP 1.0 (lo standard OASIS adottato da Azure Service Bus), offrendoti la massima flessibilità.
Funzionalità di messaging di livello industriale per applicazioni mission-critical.
I messaggi non vanno mai persi grazie ai publisher confirm e agli acknowledgment dei consumer, che assicurano garanzie di recapito end-to-end.
Routing flessibile tramite exchange direct, topic, fanout e headers collegati a code con routing key configurabili.
I consumer confermano esplicitamente i messaggi elaborati. I messaggi senza acknowledgment vengono automaticamente rimessi in coda per essere riconsegnati.
Raggruppa le operazioni di pubblicazione e acknowledgment in transazioni atomiche che vengono completate tutte o annullate tutte.
Il controllo di flusso integrato impedisce ai producer veloci di sovraccaricare i consumer lenti, garantendo prestazioni stabili del sistema.
Più canali logici su un'unica connessione TCP, riducendo l'overhead di connessione e mantenendo l'isolamento.
Testato e verificato con RabbitMQ (AMQP 0.9.1) e Azure Service Bus (AMQP 1.0) per deployment in produzione.
Scenari di messaging mission-critical in cui affidabilità e interoperabilità sono fondamentali.
Elabora transazioni finanziarie con consegna garantita e semantica exactly-once per sistemi bancari e di pagamento.
Gestisci i flussi di ordini con un'affidabile messaggistica a code tra i sistemi di inserimento, evasione, spedizione e notifica.
Costruisci un Enterprise Service Bus che colleghi sistemi eterogenei con un recapito di messaggi asincrono e affidabile.
Distribuisci il lavoro su più nodi di elaborazione con code di task e pattern di raccolta dei risultati.
Cattura e instrada gli eventi di audit verso i sistemi di logging con consegna garantita, assicurando che nessuna voce dell'audit trail venga persa.
Connettiti a un broker AMQP, dichiara code e scambia messaggi.
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;