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 használatával elválaszthatja egymástól az alkalmazásokat és szolgáltatásokat. A következő előnyöket nyújtja:

Jótanács

A legfrissebb Azure Service Bus kiadások megtekintéséhez látogass el az Azure Frissítések oldalára.

  • A terheléselosztás a versengő munkavállalók között osztja el a munkát.
  • Biztonságosan irányítja és továbbítja az adatokat és az irányítást a szolgáltatás és az alkalmazás határán
  • Koordinálja a nagy megbízhatóságot igénylő tranzakciós munkát

Áttekintés

Az alkalmazások és szolgáltatások üzenetek használatával továbbítják az adatokat egymás között. Az üzenetek olyan tárolók, amelyek adatokat tárolnak, és metaadatokkal díszítik. 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 JSON, XML, Apache Avro vagy egyszerű szöveg.

Néhány gyakori üzenetkezelé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. Úgy simítják el a terhelést, hogy a forgalom kiugró csúcsai ne terheljék 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. Több műveletet hajt végre, mindezt egy atomi tranzakció hatókörében. A tranzakció hatókörében például a következő műveletek 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 szolgáltatásként nyújtott platform (PaaS), 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 folyamatos frissítése patches-ekkel
  • Naplók elhelyezése és lemezterület kezelése
  • Biztonsági mentések kezelése
  • Tartalék gépre való átállás

Fogalmak

Ez a szakasz a Service Bus alapfogalmait ismerteti.

Várólisták

Üzenetsorokon keresztül küldhet és fogadhat üzeneteket. Az üzenetsorok addig tárolják az üzeneteket, amíg a fogadó alkalmazás el nem érhető a fogadásukhoz és a feldolgozásukhoz.

Olyan ábra, amely egy Service Bus-sort mutat be egy feladóval és egy fogadóval, akik üzeneteket küldenek és fogadnak.

Az üzenetsorokban lévő üzeneteket érkezéskor rendezik és időbélyegzik. Miután a bróker elfogadta az üzenetet, az mindig tartósan tárolja az üzenetet hármas redundanciájú tárolásban, elosztva a rendelkezésre állási zónák között, amennyiben 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, így a rendszer csak kérésre küld üzeneteket. Más felhőbeli üzenetsorok folyamatos lekérdezési modelljével ellentétben a lekéréses művelet hosszú élettartamú lehet, és csak akkor fejeződik be, ha egy üzenet elérhető.

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, független előfizetéssel is rendelkezhetnek. Ezek az előfizetések a témakörhöz kapcsolódnak, és egyébként pontosan úgy működnek, mint az üzenetsorok a fogadó oldaláról. 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álhatja őket a lejáratukra, 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 akar előfizetést, hogy megkapjon minden üzenetet egy témából.
  • 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 minden üzenetkezelési összetevő tárolója, például üzenetsorokhoz és témakörökhöz. 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évtereket összehasonlíthatja egy kiszolgálóval más közvetítők terminológiájában, de a fogalmak nem közvetlenül egyenértékűek. A Service Bus-névtér egy több tucat teljesen aktív virtuális gépből álló nagy fürt önálló kapacitásszelete. Opcionálisan három Azure rendelkezésre állási zónára terjed ki. Az üzenetközvetítő hatalmas léptékű futtatásának rendelkezésre állási és robusztussági előnyeit é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 "először be, először ki" (FIFO) garancia megvalósításához. A munkamenetek használatával kérés-válasz mintákat is implementálhat. 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 kapcsoljon, amelyek ugyanahhoz a névtérhez tartoznak. Az automatikus beküldés engedélyezésekor a Service Bus automatikusan eltávolítja az első üzenetsorba vagy előfizetésbe (forrásba) helyezett üzeneteket, és a második üzenetsorba vagy témakörbe helyezi őket (célhely). További információkért lásd a Service Bus-entitások összekapcsolása automatikus továbbítással.

Kézbesíthetetlen levelek kezelése

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 DLQ-bó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 a feldolgozás jelenleg nem lehetséges 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 téve. 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étlen állapotban való használatával megadhat egy tétlenségi időközt, amely után a rendszer automatikusan törli az üzenetsort. Az időköz visszaáll, amikor forgalom van a sorban. A minimális időtartam öt perc.

Duplikált elemek észlelése

Ha olyan hiba történik, amely miatt az ügyfél kételkedik a küldési művelet eredményében, az ismétlődő észlelés megszünteti a kétségeket ezekben a helyzetekben. A feladó újraküldheti 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.

Üzenetek kötegelt törlése

Az Azure Service Bus támogatja a kötegekben lévő üzenetek törlését. Ez a funkció akkor hasznos, ha az üzenetsorokban vagy előfizetésekben lévő üzenetek lejártak vagy már nem relevánsak, és törlést igényelnek. További információ: Batch delete.

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) é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-Replication

Ha az Azure-régiók vagy adatközpontok állásidőt tapasztalnak, a georeplikálás lehetővé teszi az adatfeldolgozást egy másik régióban való működés folytatásához.

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

Klienskönyvtá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 Apache Qpid Proton Python
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: