Protocolo AMQP
Advanced Message Queuing Protocol para mensajería empresarial fiable. Soporte completo de AMQP 0.9.1 y 1.0, compatible con RabbitMQ y Azure Service Bus.
Advanced Message Queuing Protocol para mensajería empresarial fiable. Soporte completo de AMQP 0.9.1 y 1.0, compatible con RabbitMQ y Azure Service Bus.
AMQP es un estándar abierto de mensajería empresarial que ofrece entrega de mensajes fiable e interoperable entre distintas plataformas e implementaciones.
AMQP define un protocolo a nivel de cable para middleware orientado a mensajes, garantizando una interoperabilidad real entre implementaciones de distintos fabricantes. Su sofisticado modelo de enrutamiento basado en exchanges, colas y bindings admite patrones de mensajería complejos como enrutamiento directo, por topic, fan-out y por cabeceras. sgcWebSockets implementa tanto AMQP 0.9.1 (la versión ampliamente desplegada que utiliza RabbitMQ) como AMQP 1.0 (el estándar OASIS utilizado por Azure Service Bus), proporcionándote la máxima flexibilidad.
Funciones de mensajería de nivel industrial para aplicaciones de misión crítica.
Los mensajes nunca se pierden gracias a los publisher confirms y a los acknowledgments del consumidor, que garantizan la entrega de extremo a extremo.
Enrutamiento flexible a través de exchanges direct, topic, fanout y headers vinculados a colas con routing keys configurables.
Los consumidores confirman explícitamente los mensajes procesados. Los mensajes no confirmados se vuelven a encolar automáticamente para su reentrega.
Agrupa operaciones de publicación y confirmación en transacciones atómicas que se completan en su totalidad o se revierten por completo.
El control de flujo integrado evita que los productores rápidos saturen a los consumidores lentos, asegurando un rendimiento estable del sistema.
Varios canales lógicos sobre una única conexión TCP, reduciendo la sobrecarga de conexión y manteniendo el aislamiento.
Probado y verificado con RabbitMQ (AMQP 0.9.1) y Azure Service Bus (AMQP 1.0) para despliegues en producción.
Escenarios de mensajería de misión crítica donde la fiabilidad y la interoperabilidad son fundamentales.
Procesa transacciones financieras con entrega garantizada y semántica exactly-once para sistemas bancarios y de pagos.
Gestiona flujos de trabajo de pedidos con cola de mensajes fiable entre los sistemas de entrada de pedidos, preparación, envío y notificación.
Construye un bus de servicios empresarial que conecte sistemas dispares con entrega de mensajes asíncrona y fiable.
Distribuye el trabajo entre múltiples nodos de procesamiento con colas de tareas y patrones de recogida de resultados.
Captura y enruta eventos de auditoría a los sistemas de logging con entrega garantizada, evitando la pérdida de entradas del registro de auditoría.
Conecta a un bróker AMQP, declara colas e intercambia mensajes.
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;