A Service Bus integrálása a RabbitMQ-val

Ebben az útmutatóban megtanuljuk, hogyan küldhet üzeneteket a RabbitMQ-ból a Service Busba.

Íme néhány forgatókönyv, amelyben kihasználhatjuk ezeket a képességeket:

  • Peremhálózati beállítások: Van egy peremhálózati beállításunk, ahová üzeneteket küldünk a RabbitMQ-nak, de ezeket az üzeneteket tovább szeretnénk továbbítani az Azure Service Busba további feldolgozás céljából, így számos Azure Big Data-funkciót használhatunk.
  • Hibrid felhő: A vállalat most szerzett be egy harmadik felet, amely a RabbitMQ-t használja az üzenetkezelési igényeikhez. Egy másik felhőben vannak. Amíg áttérnek az Azure-ra, már megkezdheti az adatok megosztását a RabbitMQ és az Azure Service Bus közötti áthidalással.
  • Külső integráció: Egy harmadik fél a RabbitMQ-t használja közvetítőként, és el szeretné küldeni nekünk az adatait, de a szervezeten kívül vannak. Sas-kulcsot biztosítunk nekik, amely hozzáférést biztosít számukra az Azure Service Bus-üzenetsorok korlátozott készletéhez, ahová továbbíthatják az üzeneteiket.

A lista folytatódik, de a legtöbb ilyen használati esetet meg tudjuk oldani a RabbitMQ Azure-ba való áthidalásával.

Először létre kell hoznia egy ingyenes Azure-fiókot, ha itt regisztrál

Miután bejelentkezett a fiókjába, lépjen az Azure Portalra, és hozzon létre egy új Azure Service Bus-névteret. A névterek azok a hatókör-tárolók, amelyekben az üzenetkezelési összetevők élnek, például az üzenetsorok és a témakörök.

Új Azure Service Bus-névtér hozzáadása

Az Azure Portalon kattintson a nagy plusz gombra egy új erőforrás hozzáadásához

Create resource

Ezután válassza az Integráció lehetőséget, majd az Azure Service Busra kattintva hozzon létre egy üzenetkezelési névteret:

Select Azure Service bus

A rendszer kérni fogja, hogy adja meg a névtér adatait. Válassza ki a használni kívánt Azure-előfizetést. Ha nincs erőforráscsoportja, létrehozhat egy újat.

Create namespace

Használja rabbitmq , Namespace namede lehet, hogy bármi, amit akar. Ezután állítsa be East US a helyet. Válassza ki Basic az árszintet.

Ha minden jól ment, a következő megerősítési képernyőnek kell megjelennie:

Create namespace confirmation

Ezután az Azure Portalon láthatja az új rabbitmq névteret. Kattintson rá az erőforrás eléréséhez, hogy hozzá tud adni egy üzenetsort.

Resource list with new namespace

Azure Service Bus-üzenetsor létrehozása

Most, hogy már rendelkezik az Azure Service Bus-névtérrel, kattintson a Queues bal oldali gombra, és Entitiesadjon hozzá egy új üzenetsort:

Create queue

Az üzenetsor neve ugyanúgy lesz from-rabbitmq emlékeztetve arra, hogy honnan érkeznek az üzenetek. Az összes többi beállítást alapértelmezettként hagyhatja, de az alkalmazás igényeinek megfelelően módosíthatja őket.

A RabbitMQ lapát beépülő modul engedélyezése

Ha a RabbitMQ-ból az Azure Service Busba szeretne üzeneteket küldeni, a RabbitMQ-val csomagolt lapát beépülő modult fogjuk használni. Ezzel a paranccsal engedélyezheti a beépülő modult és annak vizuális felületét:

rabbitmq-plugins enable rabbitmq_shovel_management

Előfordulhat, hogy a parancsot gyökérként kell futtatnia.

Itt az ideje, hogy lekérje a RabbitMQ azure-hoz való csatlakoztatásához szükséges hitelesítő adatokat.

A RabbitMQ azure Service Busba való Csatlakozás

Létre kell hoznia egy megosztott hozzáférési szabályzatot (SAS) az üzenetsorhoz, hogy a RabbitMQ közzétehesse az üzeneteket. Egy SAS-szabályzat segítségével megadhatja, hogy a külső fél milyen műveleteket hajthat végre az erőforrással. Az ötlet az, hogy a RabbitMQ képes üzeneteket küldeni, de nem figyeli vagy kezeli az üzenetsort.

Add SAS Policy

Jelölje be a Send jelölőnégyzetet, majd kattintson Create rá az SAS-szabályzat helyére.

A szabályzat létrehozása után kattintson rá az elsődleges Csatlakozás ion sztring megtekintéséhez. Ezzel fogjuk lehetővé tenni, hogy a RabbitMQ beszéljen az Azure Service Bus-tal:

Get SAS Policy

Ahhoz, hogy használni tudja ezt a kapcsolati sztring, át kell alakítania a RabbitMQ AMQP kapcsolatformátumára. Lépjen a kapcsolati sztring konverter eszközre, és illessze be a kapcsolati sztring az űrlapra, és kattintson a Konvertálás gombra. Kap egy kapcsolati sztring, amely készen áll a RabbitMQ-ra. (Ez a webhely mindent helyiként futtat a böngészőben, így az adatok nem lesznek továbbítva a vezetéken keresztül). A forráskódot a GitHubon érheti el.

Convert connection string

Most nyissa meg a RabbitMQ felügyeleti beépülő modult böngészőinkben http://localhost:15672/#/dynamic-shovels , és lépjen Admin -> Shovel Managementide, ahol hozzáadhatja az új lapátot, amely gondoskodik arról, hogy a RabbitMQ-üzenetsorból érkező üzeneteket az Azure Service Bus-üzenetsorba küldje.

Add RabbitMQ Shovel

Itt hívja meg a lapátot azure , és válassza ki AMQP 0.9.1 a forrásprotokollt. A képernyőképen az amqp://alapértelmezett URI található, amely egy helyi RabbitMQ-kiszolgálóhoz kapcsol minket. Ügyeljen arra, hogy ezt az aktuális üzembe helyezéshez igazítsa.

A dolgok azure üzenetsor oldalán használhatja az üzenetsor nevét. Ha az üzenetsor nem létezik, a RabbitMQ létrehozza Önnek. Kiválaszthatja a már létező üzenetsor nevét is. A többi beállítást alapértelmezettként is meghagyhatja.

Ezután a destination dolgok oldalán válassza ki AMQP 1.0 a protokollt. URI A mezőbe írja be az előző lépésből kapott összekötő sztringet, és az Azure-kapcsolati sztring RabbitMQ formátumra konvertálta. Ennek így kell kinéznie:

amqps://rabbitmq-shovel:StringOfRandomChars@rabbitmq.servicebus.windows.net:5671/?sasl=plain

Address A mezőben meg fogjuk adni az Azure Service Bus-üzenetsor nevét, ebben az esetben a rendszer meghívtafrom-rabbitmq. Kattintson Add Shovela gombra, és a beállításnak készen kell állnia az üzenetek fogadására.

Üzenetek közzététele a RabbitMQ-ból az Azure Service Busba

A RabbitMQ Felügyeleti felületén megnyithatjuk Queues, kiválaszthatjuk az azure üzenetsort, és megkereshetjük a panelt Publish message . Megjelenik egy űrlap, amely lehetővé teszi az üzenetek közvetlen közzétételét az üzenetsoron. A példánkhoz csak hozzáadjuk first messagePayload a következőt Publish Message:

Publish first message

Térjen vissza az Azure-ba, és vizsgálja meg az üzenetsort. Kattintson Service Bus Explorer a bal oldali panelre, majd a Betekintő gombra. Ha minden jól ment, látni fogja, hogy az üzenetsornak most egy üzenete van. Yay, gratulálok!

Azure Service Bus Queue

De győződjön meg arról, hogy ez az üzenet az, amit a RabbitMQ-tól küldött. Jelölje ki a Peek lapot, és kattintson a Peek gombra az üzenetsor utolsó üzeneteinek lekéréséhez. Kattintson az üzenetre a tartalmának vizsgálatához. Az alábbi képhez hasonlót kell látnia, ahol a first message lista szerepel.

Queue peek

Foglaljuk újra

Gratulálunk! Sokat ért el! Sikerült lekérnie az üzeneteket a RabbitMQ-ból az Azure Service Busba, vizsgáljuk meg a lépéseket:

  1. Azure Service Bus-névtér létrehozása
  2. Üzenetsor hozzáadása a névtérhez
  3. SAS-szabályzat hozzáadása az üzenetsorhoz
  4. Az üzenetsor lekérése kapcsolati sztring
  5. A RabbitMQ lapát beépülő modul és a felügyeleti felület engedélyezése
  6. Az Azure Service Bus kapcsolati sztring konvertálása RabbitMQ AMQP formátumra
  7. Új lapát hozzáadása a RabbitMQ-hoz > csatlakoztassa az Azure Service Bushoz
  8. Üzenetek közzététele

Az előző lépések végrehajtásával integrálta a szervezet azon területeit, amelyek az Azure-on kívül voltak. A lapát beépülő modul lehetővé tette, hogy üzeneteket küldjön a RabbitMQ-ból az Azure Service Busba. Ez óriási előnyökkel jár, mivel mostantól lehetővé teheti, hogy megbízható harmadik felek összekapcsolják alkalmazásaikat az Azure-beli üzembe helyezéssel.

Végül az üzenetküldés a kapcsolatok engedélyezéséről szól, és ezzel a technikával most nyitottunk meg egy újat.

További lépések

  • További információ az Azure Service Busról
  • További információ az AMQP 1.0 service busbeli támogatásáról