Mi az Azure Service Bus?

Az Azure Service Bus egy teljes körűen felügyelt vállalati üzenetközvetítő üzenetsorokkal és közzétételi feliratkozási témakörökkel. A Service Bus alkalmazásokat és szolgáltatásokat különít el egymástól, és az alábbi előnyöket biztosítja:

  • Terheléselosztási munka a versengő feldolgozók között
  • Széf adatok átirányítása és átvitele, valamint a vezérlés a szolgáltatás és az alkalmazás határán
  • A nagy megbízhatóságot igénylő tranzakciós munka koordinálása

Áttekintés

Az adatok különböző alkalmazások és szolgáltatások közötti átvitele az üzenetek segítségével történik. Az üzenetek metaadatokkal díszített tárolók, és adatokat tartalmaznak. Az adatok bármilyen típusú információ lehetnek, beleértve a közös formátumokkal kódolt strukturált adatokat is, például a következő formátumokat: JSON, XML, Apache Avro, Plain Text.

Néhány gyakori üzenetküldési forgatókönyv:

  • Üzenetkezelés. Üzleti adatok, például értékesítési vagy beszerzési rendelések, naplók vagy készletmozgások átvitele.

  • Alkalmazások leválasztása. Az alkalmazások és szolgáltatások megbízhatóságának és méretezhetőségének javítása. A gyártónak és a fogyasztónak nem kell egyszerre online vagy könnyen elérhetőnek lennie. A terhelést úgy simítottuk , hogy a forgalom kiugró csúcsai ne terhelje túl a szolgáltatást.

  • Terheléselosztás. Lehetővé teszi, hogy egyszerre több versengő felhasználó olvashasson egy üzenetsorból, és mindegyik biztonságosan kizárólagos tulajdonjogot szerezzen adott üzenetekhez.

  • Témakörök és előfizetések. Engedélyezze az 1:n kapcsolatot a közzétevők és az előfizetők között, így az előfizetők kiválaszthat bizonyos üzeneteket egy közzétett üzenetstreamből.

  • Tranzakciók. Lehetővé teszi, hogy több műveletet is elvégezz, mindezt egy atomi tranzakció hatókörében. Az alábbi műveletek például egy tranzakció hatókörében végezhetők el.

    1. Üzenet lekérése egy üzenetsorból.
    2. A feldolgozás eredményeinek közzététele egy vagy több különböző üzenetsorba.
    3. Helyezze át a bemeneti üzenetet az eredeti üzenetsorból.

    Az eredmények csak a sikeres feldolgozás után válnak láthatóvá az alsóbb rétegbeli fogyasztók számára, beleértve a bemeneti üzenet sikeres rendezését is, ami lehetővé teszi a szemantikák egyszeri feldolgozását. Ez a tranzakciós modell robusztus alapot biztosít a kompenzáló tranzakciók mintájához a nagyobb megoldáskörnyezetben.

  • Üzenet-munkamenetek. Olyan munkafolyamatok és multiplexált átvitelek nagy léptékű koordinációjának megvalósítása, amelyek szigorú üzenetrendezést vagy üzenet-halasztást igényelnek.

Ha ismeri a többi üzenetközvetítőt, például az Apache ActiveMQ-t, a Service Bus fogalmai hasonlóak az Ön által ismertekhez. Mivel a Service Bus egy szolgáltatásként nyújtott platform (PaaS) ajánlat, a legfontosabb különbség az, hogy nem kell aggódnia a következő műveletek miatt. Az Azure gondoskodik ezekről a házimunkákról.

  • A hardverhibákkal kapcsolatos aggodalmak
  • Az operációs rendszerek vagy a termékek javítása
  • Naplók elhelyezése és lemezterület kezelése
  • Biztonsági mentések kezelése
  • Feladatátvétel tartalék gépre

Fogalmak

Ez a szakasz a Service Bus alapfogalmait ismerteti.

Várólisták

Az üzenetek az üzenetsorokba érkeznek be, és onnan küldi ki őket a rendszer. Az üzenetsorok addig tárolják az üzeneteket, amíg a fogadó alkalmazás el nem érhető a fogadásukhoz és a feldolgozásukhoz.

Egy Service Bus-üzenetsort ábrázoló ábra, amely egy feladót és egy fogadót küld és fogad üzeneteket.

Az üzenetsorokban lévő üzeneteket érkezéskor rendezik és időbélyegzik. Miután a közvetítő elfogadta az üzenetet, az üzenet mindig triplaredundáns tárolóban marad, és a rendelkezésre állási zónák között elosztva, ha a névtér zónaalapú. A Service Bus az üzeneteket a memóriában vagy a volatilis tárolóban tárolja, amíg az ügyfél el nem fogadja őket.

Az üzenetek lekéréses módban érkeznek, és csak kérésre kézbesítenek üzeneteket. Más felhőbeli üzenetsorok foglalt lekérdezési modelljével ellentétben a lekéréses művelet hosszú élettartamú lehet, és csak akkor fejeződhet be, ha egy üzenet elérhetővé válik.

Feljegyzés

A Service Bus-üzenetsorok és a Storage-üzenetsorok összehasonlításához tekintse meg a Tárolási üzenetsorok és a Service Bus-üzenetsorok összehasonlítását és kontrasztos megjelenítését.

Témakörök

Az üzenetek küldéséhez és fogadásához témaköröket is használhat. Bár az üzenetsorokat gyakran használják pont–pont kommunikációhoz, a témakörök hasznosak a közzétételi-feliratkozási forgatókönyvekben.

Egy Service Bus-témakört bemutató ábra egy feladóval és több fogadóval.

A témakörök több, egymástól független előfizetéssel is rendelkezhetnek, amelyek a témakörhöz kapcsolódnak, és egyébként pontosan úgy működnek, mint a fogadóoldali üzenetsorok. Egy adott témakör előfizetője az adott témakörben küldött összes üzenetről kaphat másolatot. Az előfizetések nevesített entitások. Az előfizetések alapértelmezés szerint tartósak, de konfigurálhatók lejáratra, majd automatikusan törölhetők. A Java Message Service (JMS) API-n keresztül a Service Bus Premium lehetővé teszi a kapcsolat időtartama alatt létező, illékony előfizetések létrehozását is.

Az előfizetésre vonatkozó szabályokat definiálhatja. Az előfizetési szabály szűrővelrendelkezik, amely meghatározza az előfizetésbe másolandó üzenet feltételét, valamint egy választható műveletet, amely módosíthatja az üzenet metaadatait. További információ: Témakörszűrők és műveletek. Ez a funkció a következő esetekben hasznos:

  • Nem szeretné, hogy egy előfizetés megkapja a témakörbe küldött összes üzenetet.
  • Az előfizetésen áthaladó üzeneteket további metaadatokkal szeretné megjelölni.

Feljegyzés

Az üzenetsorokról és a témakörökről további információt a Service Bus üzenetsorai, témakörei és előfizetései című témakörben talál.

Névterek

A névtér az összes üzenetkezelési összetevő tárolója (üzenetsorok és témakörök). Egy névtér egy vagy több üzenetsorsal és témakörrel rendelkezhet, és gyakran alkalmazástárolóként szolgál.

A névtér más közvetítők terminológiájában hasonlítható össze egy kiszolgálóval, de a fogalmak nem közvetlenül egyenértékűek. A Service Bus-névtér egy több tucat aktív virtuális gépből álló nagy fürt saját kapacitásszelete. Opcionálisan három Azure rendelkezésre állási zónára terjed ki. Így az üzenetközvetítő hatalmas léptékben történő futtatásának minden rendelkezésre állási és robusztussági előnyét élvezheti. És nem kell aggódnia a mögöttes összetettségek miatt. A Service Bus kiszolgáló nélküli üzenetkezelés.

Speciális funkciók

A Service Bus olyan speciális funkciókkal is rendelkezik, amelyek segítségével jóval összetettebb üzenetküldési problémákat is megoldhat. A következő szakaszok ezeket a funkciókat ismertetik:

Üzenet-munkamenetek

A Service Bus-üzenetsorokban vagy -előfizetésekben lévő üzenetek feldolgozásához használjon munkameneteket az első, első előtti (FIFO) garanciához. A munkamenetek a kérés-válasz minták implementálásához is használhatók. A kérés-válasz minta lehetővé teszi, hogy a küldő alkalmazás küldjön egy kérést, és lehetővé teszi a fogadó számára, hogy helyesen küldjön vissza egy választ a feladó alkalmazásnak. További információ: Üzenet-munkamenetek.

Automatikus továbbítás

Az automatikus továbbítás funkció lehetővé teszi, hogy egy üzenetsort vagy előfizetést egy másik üzenetsorhoz vagy témakörhöz láncolódjon, amely ugyanahhoz a névtérhez tartozik. Ha az automatikus-továbbítás engedélyezve van, a Service Bus automatikusan törli azon üzeneteket, amelyek az első üzenetsorba vagy előfizetésbe (forrás) kerülnek, és áthelyezi őket a második üzenetsorba vagy témakörbe (cél). További információ: Service Bus-entitások láncolása automatikus továbbítással

Kézbesíthetetlen levelek

A Service Bus-üzenetsorok és a témakör-előfizetések másodlagos allekérdezéseket, úgynevezett "holtbetűs üzenetsort" (DLQ) biztosítanak. A kézbesítetlen levelek üzenetsora olyan üzeneteket tartalmaz, amelyeket nem lehet kézbesíteni egyetlen fogadónak sem, vagy amelyek nem dolgozhatók fel. Ezután eltávolíthatja az üzeneteket a kézbesíthetetlen levelek várólistájáról, és megvizsgálhatja azokat. Egy alkalmazás egy operátor segítségével kijavíthatja a problémákat, és újból elküldheti az üzenetet, naplózhatja, hogy hiba történt, és korrekciós műveletet hajthat végre. További információ: A Service Bus kézbesítetlen levelek üzenetsorainak áttekintése.

Ütemezett kézbesítés

A késleltetett feldolgozás érdekében üzeneteket küldhet egy üzenetsorba vagy témakörbe. Ha például ütemezni szeretné, hogy egy feladat elérhetővé váljon egy rendszer általi feldolgozáshoz egy adott időpontban. További információ: Ütemezett üzenetek.

Üzenetek halasztása

Ha egy üzenetsor- vagy előfizetés-ügyfél olyan üzenetet kap, amelyet hajlandó feldolgozni, de amelyek feldolgozására jelenleg nincs lehetőség az alkalmazáson belüli különleges körülmények miatt, az entitás késleltetheti az üzenet lekérését egy későbbi pontra. Az üzenet az üzenetsorban vagy az előfizetésben marad, de félre van állítva. További információ: Üzenet halasztás.

Tranzakciók

Egy tranzakció két vagy több műveletet kapcsol össze egyetlen végrehajtási hatókörbe. A Service Bus támogatja az egyetlen üzenetküldő entitásra (üzenetsor, témakör, előfizetés) irányuló csoportosítási műveleteket egy tranzakció hatáskörén belül. További információ: A Service Bus-tranzakciók feldolgozásának áttekintése.

Szűrők és műveletek

Az előfizetők meghatározhatják, hogy mely üzeneteket szeretnék megkapni egy témakörön belül. Ezen üzenetek egy vagy több névvel ellátott előfizetési szabály formájában adhatók meg. Minden szabály egy szűrőfeltételből áll, amely bizonyos üzeneteket jelöl ki, és opcionálisan tartalmaz egy műveletet , amely széljegyzeteket ad a kijelölt üzenetnek. Az előfizetés minden egyező szabályfeltételhez másolatot készít az üzenetről, amely az egyes egyező szabályokhoz eltérően fűzhető megjegyzésekkel. További információ: Témakörszűrők és műveletek.

Automatikus törlés tétlenség esetén

Az Automatikus törlés tétlenség esetén lehetővé teszi, hogy meghatározzon egy tétlenségi időtartamot, amelyet követően az üzenetsor automatikus törlődik. A rendszer alaphelyzetbe állítja az időközt, amikor forgalom van az üzenetsoron. A minimális érték 5 perc.

Duplikált elemek észlelése

Ha olyan hiba történik, amely miatt az ügyfélnek kétségei vannak a küldési művelet eredményével kapcsolatban, az ismétlődő észlelés kiveszi a kételyeket ezekből a helyzetekből azáltal, hogy lehetővé teszi a feladónak, hogy újraküldje ugyanazt az üzenetet, és az üzenetsor vagy a témakör elveti az ismétlődő másolatokat. További információ: Duplikált észlelés.

Biztonság

A Service Bus olyan biztonsági protokollokat támogat, mint a közös hozzáférésű jogosultságkódok (SAS), a szerepköralapú hozzáférés-vezérlés (RBAC) (RBAC) és az Azure-erőforrások felügyelt identitásai.

A Service Bus támogatja a standard Advanced Message Queuing Protocol (AMQP) 1.0 és HTTP/REST protokollokat.

Geo-vészhelyreállítás

Az Azure-régiók vagy adatközpontok leállása esetében a Geo-vészhelyreállítás lehetővé teszi az adatfeldolgozási művelet folytatását egy másik régióban vagy adatközpontban.

Feljegyzés

További információ ezekről a funkciókról: Az Azure Service Bus speciális funkciói.

Szabványoknak és protokolloknak való megfelelés

A Service Bus elsődleges vezetékes protokollja az Advanced Messaging Queueing Protocol (AMQP) 1.0, amely egy nyílt ISO/IEC szabvány. Lehetővé teszi az ügyfelek számára, hogy olyan alkalmazásokat írjanak, amelyek a Service Bus és a helyszíni közvetítők, például az ActiveMQ vagy a RabbitMQ ellen működnek. Az AMQP protokoll útmutatója részletes információkat nyújt arra az esetre, ha ilyen absztrakciót szeretne létrehozni.

A Service Bus Premium teljes mértékben megfelel a Java/Jakarta Enterprise kiadás Java Message Service (JMS) 2.0 API-nak. A Service Bus Standard támogatja az üzenetsorokra összpontosító JMS 1.1-alkészletet. A JMS egy gyakori absztrakció az üzenetközvetítők számára, és számos alkalmazással és keretrendszerrel integrálható, beleértve a népszerű Spring-keretrendszert is. Ha más közvetítőkről azure Service Busra szeretne váltani, egyszerűen újra létre kell hoznia az üzenetsorok és témakörök topológiáját, és módosítania kell az ügyfélszolgáltató függőségeit és konfigurációját. Például tekintse meg az ActiveMQ migrálási útmutatót.

Ügyfélkódtárak

A teljes mértékben támogatott Service Bus-ügyfélkódtárak az Azure SDK-on keresztül érhetők el.

Az Azure Service Bus elsődleges protokollja az AMQP 1.0 , és bármely AMQP 1.0-kompatibilis protokollügyfélről használható. Számos nyílt forráskódú AMQP-ügyfél rendelkezik olyan mintákkal, amelyek kifejezetten szemléltetik a Service Bus együttműködését. Tekintse át az AMQP 1.0 protokoll útmutatóját , amelyből megtudhatja, hogyan használhatja a Service Bus-funkciókat közvetlenül az AMQP 1.0-ügyfelekkel.

Nyelv 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

Integráció

A Service Bus teljes mértékben integrálható számos Microsoft- és Azure-szolgáltatással, például:

Következő lépések

A Service Bus-üzenetküldéssel való megismerkedéshez tekintse meg a következő cikkeket: