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.

AMQP nedir?

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.

Kurumsal Düzeyde Mesaj Kuyruğu

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.

  • Tel seviyesindeki protokol, satıcılar arası birlikte çalışabilirliği garanti eder
  • Exchange, kuyruk ve binding'lerle esnek yönlendirme
  • Onaylarla garantili mesaj iletimi
  • Hem AMQP 0.9.1 hem de 1.0 desteklenir
PRODUCER EXCH Q1 Q2 CONSUMER

AMQP Özellikleri

Kritik görev uygulamaları için endüstriyel güçte mesajlaşma özellikleri.

Güvenilir Mesaj İletimi

Yayıncı onayları ve tüketici onayları uçtan uca iletim garantileri sağladığından mesajlar asla kaybolmaz.

Exchange/Kuyruk/Binding Modeli

Yapılandırılabilir yönlendirme anahtarlarıyla kuyruklara bağlanan direct, topic, fanout ve headers exchange'leri aracılığıyla esnek yönlendirme.

Mesaj Onayı

Tüketiciler işlenen mesajları açıkça onaylar. Onaylanmayan mesajlar yeniden iletim için otomatik olarak kuyruğa geri alınır.

İşlemler

Yayınlama ve onaylama işlemlerini, ya tamamen başarılı olan ya da tamamen geri alınan atomik işlemler halinde gruplayın.

Akış Kontrolü

Yerleşik akış kontrolü, hızlı üreticilerin yavaş tüketicileri aşırı yüklemesini engelleyerek kararlı sistem performansı sağlar.

Kanal Çoğullama

Tek bir TCP bağlantısı üzerinden birden fazla mantıksal kanal; izolasyonu korurken bağlantı ek yükünü azaltır.

RabbitMQ ve Azure Service Bus

Ü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.

AMQP Kullanım Senaryoları

Güvenilirliğin ve birlikte çalışabilirliğin en çok önemli olduğu kritik görev mesajlaşma senaryoları.

Finansal İşlem İşleme

Bankacılık ve ödeme sistemleri için garantili iletim ve tam-bir-kez semantiğiyle finansal işlemleri işleyin.

Sipariş Yönetimi

Sipariş girişi, gerçekleştirme, sevkiyat ve bildirim sistemleri arasında güvenilir mesaj kuyruğuyla sipariş iş akışlarını yönetin.

Kurumsal Servis Veri Yolu

Farklı sistemleri güvenilir, asenkron mesaj iletimiyle birbirine bağlayan bir kurumsal servis veri yolu oluşturun.

Dağıtık Hesaplama

Görev kuyrukları ve sonuç toplama desenleriyle işi birden fazla işleme düğümüne dağıtın.

Denetim Günlüğü

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.

Delphi AMQP Örneği

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;

AMQP ile Başlamaya Hazır mısınız?

Ücretsiz denemeyi indirin ve dakikalar içinde kurumsal mesaj broker'larına bağlanın.