Advanced Message Queueing Protocol (AMQP) 1.0-támogatás a Service Busban

Az Azure Service Bus felhőszolgáltatás az AMQP 1.0-t használja elsődleges kommunikációs eszközként. A Microsoft az elmúlt évtizedben az iparági partnerekkel, a konkurens üzenetküldő közvetítők ügyfeleivel és szállítóival is együttműködve fejleszti és fejleszti az AMQP-t, és új bővítményeket fejleszt az OASIS AMQP Műszaki Bizottságában. Az AMQP 1.0 iso- és IEC-szabvány (ISO 19464:20149).

Az AMQP lehetővé teszi, hogy többplatformos, hibrid alkalmazásokat hozzon létre egy gyártósemleges és implementációsemleges, nyílt standard protokoll használatával. Különböző nyelvek és keretrendszerek használatával készült és különböző operációs rendszereken futó összetevőkkel hozhat létre alkalmazásokat. Ezek az összetevők képesek kapcsolódni a Service Bushoz, és zökkenőmentesen kicserélni a strukturált üzleti üzeneteket hatékonyan és teljes hűségben.

Bevezetés: Mi az AMQP 1.0, és miért fontos?

Az üzenetorientált köztes szoftvertermékek hagyományosan védett protokollokat használtak az ügyfélalkalmazások és a közvetítők közötti kommunikációhoz. Ez azt jelenti, hogy miután kiválasztotta egy adott szállító üzenetküldőjét, a szállító kódtárait kell használnia az ügyfélalkalmazások ehhez a közvetítőhöz való csatlakoztatásához. Ez bizonyos fokú függőséget eredményez az adott gyártótól, mivel egy alkalmazás másik termékbe való átviteléhez kódmódosításra van szükség az összes csatlakoztatott alkalmazásban. A Java-közösségben a nyelvspecifikus API-szabványok, például a Java Message Service (JMS) és a Spring Framework absztrakciói némileg enyhítik ezt a fájdalmat, de szűk szolgáltatási hatókörrel rendelkeznek, és kizárják a más nyelveket használó fejlesztőket.

Ezenkívül a különböző szállítóktól származó üzenetküldő közvetítők csatlakoztatása bonyolult. Általában alkalmazásszintű áthidalást igényel az üzenetek egyik rendszerből a másikba való áthelyezéséhez, valamint a saját üzenetformátumaik közötti fordításhoz. Ez egy gyakori követelmény; például ha új egységes felületet kell biztosítania a régebbi különálló rendszerekhez, vagy integrálnia kell az informatikai rendszereket egy egyesülés után. Az AMQP lehetővé teszi a csatlakozó közvetítők közvetlen összekapcsolását, például olyan útválasztók használatával, mint az Apache Qpid Dispatch Router vagy a broker-natív "lapátok", mint a RabbitMQ.

A szoftveripar egy gyorsan változó vállalkozás; új programozási nyelveket és alkalmazás-keretrendszereket vezetnek be néha zavarba gőgöző ütemben. Hasonlóképpen, az informatikai rendszerek követelményei idővel változnak, és a fejlesztők szeretnék kihasználni a legújabb platformfunkciók előnyeit. Néha azonban a kiválasztott üzenetkezelő szállító nem támogatja ezeket a platformokat. Ha az üzenetkezelési protokollok védettek, mások nem biztosíthatnak kódtárakat ezekhez az új platformokhoz. Ezért olyan megközelítéseket kell használnia, mint például átjárók vagy hidak létrehozása, amelyek lehetővé teszik az üzenetkezelési termék használatának folytatását.

Az Advanced Message Queuing Protocol (AMQP) 1.0 fejlesztését ezek a problémák motiválták. A JP Morgan Chase-ből származik, aki a legtöbb pénzügyi szolgáltató céghez hasonlóan az üzenetközpontú köztes szoftver nagy felhasználói. A cél egyszerű volt: egy nyílt szabványú üzenetkezelési protokoll létrehozása, amely lehetővé tette üzenetalapú alkalmazások létrehozását különböző nyelvek, keretrendszerek és operációs rendszerek használatával, amelyek mindegyike különböző szállítók legjobb összetevőit használja.

AZ AMQP 1.0 technikai funkciói

Az AMQP 1.0 egy hatékony, megbízható, vezetékes szintű üzenetkezelési protokoll, amellyel robusztus, platformfüggetlen üzenetkezelési alkalmazásokat hozhat létre. A protokollnak egyszerű célja van: az üzenetek biztonságos, megbízható és hatékony átvitelének mechanikája két fél között. Maguk az üzenetek hordozható adatreprezentációval vannak kódolva, amely lehetővé teszi a heterogén feladók és fogadók számára a strukturált üzleti üzenetek teljes hűségű cseréjét. Az alábbiakban összefoglaljuk a legfontosabb funkciókat:

  • Hatékony: Az AMQP 1.0 egy kapcsolatorientált protokoll, amely bináris kódolást használ a protokollutasításokhoz és az azon átvitt üzleti üzenetekhez. Kifinomult folyamatvezérlési sémákat tartalmaz a hálózat és a csatlakoztatott összetevők kihasználtságának maximalizálása érdekében. Ez azt jelenti, hogy a protokollt úgy tervezték, hogy egyensúlyt teremtsen a hatékonyság, a rugalmasság és az interoperabilitás között.
  • Megbízható: Az AMQP 1.0 protokoll lehetővé teszi az üzenetek cseréjét számos megbízhatósági garanciával, a tűz és a felejtéstől a megbízhatóig, pontosan egyszer elismert kézbesítésig.
  • Rugalmas: Az AMQP 1.0 egy rugalmas protokoll, amely különböző topológiák támogatására használható. Ugyanez a protokoll használható ügyfél-ügyfél, ügyfél-közvetítő és közvetítő közötti kommunikációhoz.
  • Közvetítő-modell független: Az AMQP 1.0 specifikációja nem tesz követelményeket a közvetítő által használt üzenetkezelési modellre vonatkozóan. Ez azt jelenti, hogy egyszerűen hozzáadhat AMQP 1.0-támogatást a meglévő üzenetkezelési közvetítőkhöz.

Az AMQP 1.0 egy standard (S nagybetűvel)

Az AMQP 1.0 az ISO és az IEC által ISO/IEC 19464:2014 szabványként jóváhagyott nemzetközi szabvány.

Az AMQP 1.0 2008 óta fejlesztés alatt áll több mint 20 vállalat alapcsoportja, mind a technológiai beszállítók, mind a végfelhasználói cégek. Ez idő alatt a felhasználói cégek hozzájárultak a valós üzleti igényeikhez, és a technológiai szállítók úgy alakították ki a protokollt, hogy megfeleljenek ezeknek a követelményeknek. A folyamat során a szállítók workshopokon vettek részt, amelyeken együttműködve ellenőrizték a megvalósítások közötti interoperabilitást.

2011 októberében a fejlesztési munka áttért a Strukturált Információs Szabványok (OÁZIS) szervezetének technikai bizottságára, és 2012 októberében megjelent az OASIS AMQP 1.0 Standard. A szabvány kidolgozása során a műszaki bizottságban a következő cégek vettek részt:

  • Technológiai gyártók: Axway Software, Huawei Technologies, IIT Software, INETCO Systems, Kaazing, Microsoft, Mitre Corporation, Primeton Technologies, Progress Software, Red Hat, SITA, Software AG, Solace Systems, VMware, WSO2, Zenika.
  • Felhasználói cégek: Bank of America, Credit Suisse, Deutsche Boerse, Goldman Sachs, JPMorgan Chase.

Az OASIS AMQP Technikai Bizottságának jelenlegi elnökei a Red Hatot és a Microsoftot képviselik.

A nyílt szabványok gyakran idézett előnyei közé tartoznak a következők:

  • Kisebb eséllyel zárják be a szállítót
  • Együttműködési lehetőség
  • A kódtárak és az eszközök széles körű elérhetősége
  • Az elavulás elleni védelem
  • A hozzáértő munkatársak rendelkezésre állása
  • Alacsonyabb és kezelhető kockázat

AMQP 1.0 és Service Bus

Az AMQP 1.0 támogatása az Azure Service Busban azt jelenti, hogy a Service Bus üzenetsor-kezelési és közzétételi/előfizetési szolgáltatását számos platformról használhatja hatékony bináris protokoll használatával. Emellett különböző nyelvek, keretrendszerek és operációs rendszerek használatával létrehozott összetevőkből álló alkalmazásokat is létrehozhat.

Az alábbi ábra egy példatelepítést mutat be, amelyben a Linuxon futó Java-ügyfelek a Standard Java Message Service (JMS) API-val és a Windowson futó .NET-ügyfelekkel, az AMQP 1.0 használatával a Service Buson keresztül váltanak üzeneteket.

Diagram showing one Service Bus exchanging messages with two Linux environments and two Windows environments.

1. ábra: Példa a platformfüggetlen üzenetküldésre a Service Bus és az AMQP 1.0 használatával

Az Azure SDK-n keresztül elérhető összes támogatott Service Bus-ügyfélkódtár az AMQP 1.0-t használja.

Az AMQP-over-WebSockets protokollbeállítás a TCP 443-as porton fut, ugyanúgy, mint a HTTP/REST API, de egyébként funkcionálisan megegyezik az egyszerű AMQP-vel. Ez a beállítás nagyobb kezdeti kapcsolati késéssel rendelkezik, mivel extra kézfogási kerekítések vannak, és a HTTPS-port megosztásának kompromisszumaként valamivel nagyobb többletterhelést jelent. Ha ez a mód van kiválasztva, a 443-as TCP-port elegendő a kommunikációhoz. Az alábbi beállítások lehetővé teszik az AMQP WebSockets mód kiválasztását.

Language Beállítás
.NET (Azure.Messaging.ServiceBus) Hozza létre a ServiceBusClientet egy olyan konstruktor használatával, amely a ServiceBusClientOptions paramétert használja. A ServiceBusClientOptions.TransportType beállítása ServiceBusTransportType.AmqpWebSockets értékre
.NET (Microsoft.Azure.ServiceBus) Ügyfélobjektumok létrehozásakor használjon olyan konstruktorokat, amelyek paraméterként a TransportType, a ServiceBus Csatlakozás ion vagy a ServiceBus Csatlakozás ionStringBuildert használják.

A paraméterként használt transportType szerkezetnél állítsa a paramétert TransportType.AmqpWebSockets értékre.

A paraméterként használt ServiceBusConnection konstruktorhoz állítsa be a ServiceBus Csatlakozás iont. TransportType to TransportType.AmqpWebSockets.

Ha használja ServiceBusConnectionStringBuilder, használjon konstruktorokat, amelyek lehetővé teszik a beállítás megadását transportType.

Java (com.azure.messaging.servicebus) Ügyfelek létrehozásakor állítsa a ServiceBusClientBuilder.transportTypeértéket AmqpTransportType.AMQP.AMQP_WEB_SOCKETS
Java (com.microsoft.azure.servicebus) Ügyfelek létrehozásakor állítsa be transportType a com.microsoft.azure.servicebus.Client Gépházcom.microsoft.azure.servicebus.primitives.TransportType.AMQP_WEB_SOCKETS
JavaScript Service Bus-ügyfélobjektumok létrehozásakor használja a tulajdonságot a webSocketOptions ServiceBusClientOptionsban.
Python Service Bus-ügyfelek létrehozásakor állítsa a ServiceBusClient.transport_type TransportType.AmqpOverWebSocket értékre

2026. szeptember 30-án kivonjuk az Azure Service Bus SDK-kódtárakat a WindowsAzure.ServiceBus, a Microsoft.Azure.ServiceBus és a com.microsoft.azure.servicebus kódtárakból, amelyek nem felelnek meg az Azure SDK irányelveinek. Az SBMP protokoll támogatását is megszüntetjük, így 2026. szeptember 30. után már nem használhatja ezt a protokollt. Migrálás a legújabb Azure SDK-kódtárakba, amelyek kritikus fontosságú biztonsági frissítéseket és továbbfejlesztett képességeket kínálnak ezen dátum előtt.

Bár a régebbi kódtárak 2026. szeptember 30-tól továbbra is használhatók, a Microsoft már nem kap hivatalos támogatást és frissítéseket. További információkért lásd a támogatási nyugdíjazási bejelentést.

Emellett a Service Bust bármely AMQP 1.0-kompatibilis protokollveremből használhatja:

Language Könyvtár
Java Apache Qpid Proton-J
C/C++ Azure uAMQP C, Apache Qpid Proton-C
Python Azure uAMQP for Python, Apache Qpid Proton Python
PHP Azure uAMQP PHP-hez
Ruby Apache Qpid Proton Ruby
Go Azure Go AMQP, Apache Qpid Proton Go
C#/F#/VB AMQP .NET Lite, Apache NMS AMQP
JavaScript/Node Rhea

Summary

  • Az AMQP 1.0 egy nyílt, megbízható üzenetkezelési protokoll, amellyel platformfüggetlen, hibrid alkalmazásokat hozhat létre. Az AMQP 1.0 egy OASIS szabvány.

Következő lépések

Készen áll a tanulásra? Látogasson el a következő hivatkozásokra: