Klient AMQP dla Delphi

Advanced Message Queuing Protocol do niezawodnej komunikacji korporacyjnej. Pełna obsługa AMQP 0.9.1 i 1.0, zgodna z RabbitMQ i Azure Service Bus.

Szybka odpowiedź: komponent TsgcAMQPClient łączy aplikacje Delphi i C++ Builder z brokerami AMQP, implementując zarówno AMQP 0.9.1, jak i AMQP 1.0 z kanałami, wymianami, kolejkami, potwierdzeniami i transakcjami wobec RabbitMQ i Azure Service Bus.

Czym jest AMQP?

AMQP to otwarty standard komunikacji korporacyjnej, który zapewnia niezawodne i interoperacyjne dostarczanie komunikatów między różnymi platformami i implementacjami.

Kolejki komunikatów klasy korporacyjnej

AMQP definiuje protokół na poziomie sieciowym dla oprogramowania pośredniczącego zorientowanego na komunikaty, zapewniając prawdziwą interoperacyjność między implementacjami różnych dostawców. Zaawansowany model routingu oparty na exchange, kolejkach i powiązaniach obsługuje złożone wzorce komunikacji, w tym routing bezpośredni, routing oparty na tematach, fan-out i routing oparty na nagłówkach. sgcWebSockets implementuje zarówno AMQP 0.9.1 (powszechnie wdrożoną wersję używaną przez RabbitMQ), jak i AMQP 1.0 (standard OASIS używany przez Azure Service Bus), co daje ci maksymalną elastyczność.

  • Protokół na poziomie sieciowym gwarantuje interoperacyjność między dostawcami
  • Elastyczny routing z użyciem exchange, kolejek i powiązań
  • Gwarantowane dostarczanie komunikatów z potwierdzeniami
  • Obsługa AMQP 0.9.1 i 1.0
PRODUCER EXCH Q1 Q2 CONSUMER

Funkcje AMQP

Funkcje komunikacji klasy przemysłowej dla aplikacji krytycznych.

Niezawodne dostarczanie komunikatów

Komunikaty nie giną dzięki potwierdzeniom wydawcy i potwierdzeniom konsumenta, które zapewniają gwarancje dostarczenia od końca do końca.

Model Exchange/Queue/Binding

Elastyczny routing przez exchange typu direct, topic, fanout i headers powiązane z kolejkami za pomocą konfigurowalnych kluczy routingu.

Potwierdzanie komunikatów

Konsumenci jawnie potwierdzają przetworzone komunikaty. Niepotwierdzone komunikaty są automatycznie kolejkowane ponownie w celu ponownego dostarczenia.

Transakcje

Grupuj operacje publikowania i potwierdzania w atomowe transakcje, które albo kończą się w całości powodzeniem, albo są w całości wycofywane.

Kontrola przepływu

Wbudowana kontrola przepływu zapobiega przeciążaniu wolnych konsumentów przez szybkich producentów, zapewniając stabilną wydajność systemu.

Multipleksowanie kanałów

Wiele kanałów logicznych w jednym połączeniu TCP zmniejsza narzut połączeń przy zachowaniu izolacji.

RabbitMQ & Azure Service Bus

Przetestowano i zweryfikowano z RabbitMQ (AMQP 0.9.1) oraz Azure Service Bus (AMQP 1.0) pod kątem wdrożeń produkcyjnych.

Przypadki użycia AMQP

Krytyczne scenariusze komunikacji, w których najważniejsze są niezawodność i interoperacyjność.

Przetwarzanie transakcji finansowych

Przetwarzaj transakcje finansowe z gwarantowanym dostarczeniem i semantyką dokładnie jednokrotną w systemach bankowych i płatniczych.

Zarządzanie zamówieniami

Zarządzaj przepływami zamówień dzięki niezawodnemu kolejkowaniu komunikatów między systemami przyjmowania zamówień, realizacji, wysyłki i powiadomień.

Korporacyjna magistrala usług

Zbuduj korporacyjną magistralę usług łączącą różnorodne systemy dzięki niezawodnemu, asynchronicznemu dostarczaniu komunikatów.

Przetwarzanie rozproszone

Rozdzielaj pracę między wiele węzłów przetwarzania za pomocą kolejek zadań i wzorców zbierania wyników.

Rejestrowanie audytu

Przechwytuj zdarzenia audytu i kieruj je do systemów rejestrowania z gwarantowanym dostarczeniem, dzięki czemu żaden wpis ścieżki audytu nie zostanie utracony.

Przykład AMQP w Delphi

Połącz się z brokerem AMQP, zadeklaruj kolejki i wymieniaj komunikaty.

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;

Przypadki użycia AMQP

Częste pytania o kolejkowanie komunikatów AMQP z Delphi i C++ Builder.

Utwórz TsgcAMQPClient, ustaw jego Host, Port, Authentication i VirtualHost, a następnie wywołaj Connect. W zdarzeniu OnAMQPConnect otwierasz kanał przez OpenChannel, deklarujesz kolejkę przez DeclareQueue i zaczynasz odbierać przez BasicConsume. Wysyłaj komunikaty przez BasicPublish i potwierdzaj je przez BasicAck.
Klient implementuje zarówno AMQP 0.9.1, szeroko wdrożoną wersję używaną przez RabbitMQ, jak i AMQP 1.0, standard OASIS używany przez Azure Service Bus. Jest testowany i zweryfikowany z RabbitMQ i Azure Service Bus dla wdrożeń produkcyjnych, a protokół na poziomie przewodu gwarantuje współdziałanie z innymi zgodnymi brokerami.
Tak. Potwierdzenia wydawcy i potwierdzenia konsumenta zapewniają gwarancje dostarczania od końca do końca, niepotwierdzone komunikaty są automatycznie ponownie kolejkowane, a operacje publikowania i potwierdzania możesz grupować w atomowe transakcje. Model wymian, kolejek i powiązań obsługuje routing direct, topic, fanout i headers, z multipleksowaniem kanałów przez jedno połączenie.
sgcWebSockets obsługuje Delphi 7 aż po najnowsze wydanie Delphi oraz odpowiadające im wersje C++ Builder, w systemach Windows, macOS, Linux, iOS i Android. Pobierz bezpłatną wersję próbną, aby ocenić klienta AMQP we własnym projekcie.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy, aby rozpocząć z AMQP?

Pobierz bezpłatną wersję próbną i połącz się z korporacyjnymi brokerami komunikatów w kilka minut.