AMQP Protokolü
Güvenilir kurumsal mesajlaşma için Advanced Message Queuing Protocol. AMQP 0.9.1 ve 1.0 için tam destek, RabbitMQ ve Azure Service Bus ile uyumlu.
Güvenilir kurumsal mesajlaşma için Advanced Message Queuing Protocol. AMQP 0.9.1 ve 1.0 için tam destek, RabbitMQ ve Azure Service Bus ile uyumlu.
AMQP, farklı platformlar ve uygulamalar arasında güvenilir, birlikte çalışabilir mesaj iletimi sağlayan kurumsal mesajlaşma için açık bir standarttır.
AMQP, mesaj odaklı ara yazılım için tel seviyesinde bir protokol tanımlar ve farklı satıcı uygulamaları arasında gerçek birlikte çalışabilirlik sağlar. Exchange, kuyruk ve binding'lere dayanan gelişmiş yönlendirme modeli; direct routing, topic tabanlı yönlendirme, fan-out ve header tabanlı yönlendirme dahil karmaşık mesajlaşma desenlerini destekler. sgcWebSockets hem AMQP 0.9.1'i (RabbitMQ tarafından kullanılan yaygın olarak dağıtılmış sürüm) hem de AMQP 1.0'ı (Azure Service Bus tarafından kullanılan OASIS standardı) uygular ve size azami esneklik sunar.
Kritik görev uygulamaları için endüstriyel güçte mesajlaşma özellikleri.
Yayıncı onayları ve tüketici onayları uçtan uca iletim garantileri sağladığından mesajlar asla kaybolmaz.
Yapılandırılabilir yönlendirme anahtarlarıyla kuyruklara bağlanan direct, topic, fanout ve headers exchange'leri aracılığıyla esnek yönlendirme.
Tüketiciler işlenen mesajları açıkça onaylar. Onaylanmayan mesajlar yeniden iletim için otomatik olarak kuyruğa geri alınır.
Yayınlama ve onaylama işlemlerini, ya tamamen başarılı olan ya da tamamen geri alınan atomik işlemler halinde gruplayın.
Yerleşik akış kontrolü, hızlı üreticilerin yavaş tüketicileri aşırı yüklemesini engelleyerek kararlı sistem performansı sağlar.
Tek bir TCP bağlantısı üzerinden birden fazla mantıksal kanal; izolasyonu korurken bağlantı ek yükünü azaltır.
Üretim dağıtımları için RabbitMQ (AMQP 0.9.1) ve Azure Service Bus (AMQP 1.0) ile test edilmiş ve doğrulanmıştır.
Güvenilirliğin ve birlikte çalışabilirliğin en çok önemli olduğu kritik görev mesajlaşma senaryoları.
Bankacılık ve ödeme sistemleri için garantili iletim ve tam-bir-kez semantiğiyle finansal işlemleri işleyin.
Sipariş girişi, gerçekleştirme, sevkiyat ve bildirim sistemleri arasında güvenilir mesaj kuyruğuyla sipariş iş akışlarını yönetin.
Farklı sistemleri güvenilir, asenkron mesaj iletimiyle birbirine bağlayan bir kurumsal servis veri yolu oluşturun.
Görev kuyrukları ve sonuç toplama desenleriyle işi birden fazla işleme düğümüne dağıtın.
Denetim olaylarını garantili iletimle günlük sistemlerine yakalayın ve yönlendirin; hiçbir denetim izi girişinin kaybolmamasını sağlayın.
Bir AMQP broker'ına bağlanın, kuyruklar tanımlayın ve mesaj alışverişi yapın.
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 := '/';
// Olay işleyicilerini ayarla
AMQPClient.OnAMQPConnect := OnAMQPConnect;
AMQPClient.OnAMQPMessage := OnAMQPMessage;
AMQPClient.Connect;
end;
procedure TForm1.OnAMQPConnect(Sender: TObject);
begin
// Bir kanal aç
AMQPClient.OpenChannel(1);
// Bir kuyruk tanımla
AMQPClient.DeclareQueue(1, 'orders',
False, True, False, False);
// Mesajları tüketmeye başla
AMQPClient.BasicConsume(1, 'orders',
'consumer-1', False, False, False, False);
end;
procedure TForm1.OnAMQPMessage(Sender: TObject;
aChannel: Integer; aMessage: TsgcAMQPMessage);
begin
// Mesajı işle
Memo1.Lines.Add('Alındı: ' + aMessage.Body);
// Mesajı onayla
AMQPClient.BasicAck(aChannel, aMessage.DeliveryTag, False);
end;
procedure TForm1.ButtonPublishClick(Sender: TObject);
begin
// Varsayılan exchange'e bir mesaj yayınla
AMQPClient.BasicPublish(1, '', 'orders',
'{"orderId": 67890, "total": 99.95}');
end;