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-Namespace hozzáadása
Az Azure Portalon kattintson a nagy plusz gombra egy új erőforrás hozzáadásához
Ezután válassza az Integráció lehetőséget, majd az Azure Service Busra kattintva hozzon létre egy üzenetkezelési névteret:
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.
Használja rabbitmq
, Namespace name
de 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:
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.
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 Entities
adjon hozzá egy új üzenetsort:
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 csatlakoztatása az Azure Service Bushoz
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.
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 kapcsolati sztring megtekintéséhez. Ezzel fogjuk lehetővé tenni, hogy a RabbitMQ beszéljen az Azure Service Bus-tal:
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.
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 Management
ide, 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.
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 Shovel
a 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 message
Payload
a következőt Publish 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!
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.
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:
- Azure Service Bus-Namespace létrehozása
- Üzenetsor hozzáadása a névtérhez
- SAS-szabályzat hozzáadása az üzenetsorhoz
- Az üzenetsor lekérése kapcsolati sztring
- A RabbitMQ lapát beépülő modul és a felügyeleti felület engedélyezése
- Az Azure Service Bus kapcsolati sztring konvertálása RabbitMQ AMQP formátumra
- Új lapát hozzáadása a RabbitMQ-hoz > csatlakoztassa az Azure Service Bushoz
- Ü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.