Integrace služby Service Bus s RabbitMQ
V této příručce se dozvíme, jak odesílat zprávy z RabbitMQ do služby Service Bus.
Tady je několik scénářů, ve kterých můžeme využít tyto funkce:
- Nastavení edge: Máme nastavení hraničních zařízení, kde odesíláme zprávy do RabbitMQ, ale chceme tyto zprávy předávat do služby Azure Service Bus pro další zpracování, abychom mohli využít řadu funkcí Azure pro velké objemy dat.
- Hybridní cloud: Vaše společnost právě získala třetí stranu, která pro své potřeby zasílání zpráv používá RabbitMQ. Jsou v jiném cloudu. I když přejdou do Azure, můžete už začít sdílet data přemostěním RabbitMQ se službou Azure Service Bus.
- Integrace třetích stran: Třetí strana používá RabbitMQ jako zprostředkovatele a chce nám odesílat data, ale jsou mimo naši organizaci. Můžeme jim poskytnout klíč SAS, který jim poskytne přístup k omezené sadě front Azure Service Bus, do kterých můžou zprávy předávat.
Seznam pokračuje, ale většinu těchto případů použití můžeme vyřešit přemostěním RabbitMQ do Azure.
Nejdřív si musíte vytvořit bezplatný účet Azure tím, že se tady zaregistrujete .
Po přihlášení ke svému účtu přejděte na web Azure Portal a vytvořte nový obor názvů služby Azure Service Bus. Obory názvů jsou kontejnery oborů, ve kterých budou naše komponenty zasílání zpráv žít, jako jsou fronty a témata.
Přidání nového oboru názvů služby Azure Service Bus
Na webu Azure Portal klikněte na velké tlačítko plus a přidejte nový prostředek.
Pak vyberte Možnost Integrace a kliknutím na Azure Service Bus vytvořte obor názvů zasílání zpráv:
Zobrazí se výzva k zadání informací o oboru názvů. Vyberte předplatné Azure, které chcete použít. Pokud nemáte skupinu prostředků, můžete vytvořit novou.
Používejte rabbitmq
pro Namespace name
, ale může to být cokoli, co chcete. Pak nastavte East US
umístění. Zvolte Basic
jako cenovou úroveň.
Pokud všechno proběhlo dobře, měli byste vidět následující potvrzovací obrazovku:
Pak se vrátíte na web Azure Portal, kde uvidíte nový rabbitmq
obor názvů. Kliknutím na něj získáte přístup k prostředku, abyste do něj mohli přidat frontu.
Vytvoření fronty služby Azure Service Bus
Teď, když máte obor názvů služby Azure Service Bus, klikněte na Queues
tlačítko vlevo v části Entities
, abyste mohli přidat novou frontu:
Název fronty bude from-rabbitmq
stejně jako připomenutí, odkud zprávy pocházejí. Všechny ostatní možnosti můžete ponechat jako výchozí, ale můžete je změnit tak, aby vyhovovaly potřebám vaší aplikace.
Povolení modulu plug-in RabbitMQ Shovel
K odeslání zpráv z RabbitMQ do služby Azure Service Bus použijeme modul plug-in Shovel, který je součástí rabbitMQ. Modul plug-in a jeho vizuální rozhraní můžete povolit pomocí tohoto příkazu:
rabbitmq-plugins enable rabbitmq_shovel_management
Tento příkaz možná budete muset spustit jako kořen.
Teď je čas získat přihlašovací údaje potřebné pro připojení RabbitMQ k Azure.
Připojení RabbitMQ ke službě Azure Service Bus
Budete muset vytvořit zásadu sdíleného přístupu (SAS) pro vaši frontu, aby do ní RabbitMQ mohl publikovat zprávy. Zásady SAS vám umožní určit, co má externí strana s vaším prostředkem povoleno dělat. Myšlenka spočívá v tom, že RabbitMQ dokáže odesílat zprávy, ale ne naslouchat ani spravovat frontu.
Zaškrtněte Send
políčko a klikněte na Create
to, aby byly zavedeny naše zásady SAS.
Po vytvoření zásady se zobrazí primární připojovací řetězec. Použijeme ho k tomu, aby rabbitMQ mluvil s Azure Service Busem:
Než budete moct tuto připojovací řetězec použít, budete ji muset převést do formátu připojení AMQP RabbitMQ. Přejděte tedy do nástroje připojovací řetězec převaděče a vložte připojovací řetězec ve formuláři, klikněte na převést. Dostanete připojovací řetězec, který je připravený RabbitMQ. (Tento web spouští všechno místní v prohlížeči, aby se vaše data neposílala přes drát. Ke zdrojovému kódu se dostanete na GitHubu.
Teď otevřete modul plug-in pro správu RabbitMQ v našich prohlížečích http://localhost:15672/#/dynamic-shovels
a přejděte do Admin -> Shovel Management
umístění , kam můžete přidat novou lopatu, která se postará o odesílání zpráv z fronty RabbitMQ do fronty služby Azure Service Bus.
Tady zavolejte shovel azure
a zvolte AMQP 0.9.1
jako zdrojový protokol. Na snímku obrazovky máme amqp://
, což je výchozí identifikátor URI, který nás připojuje k místnímu serveru RabbitMQ. Nezapomeňte ho přizpůsobit aktuálnímu nasazení.
Na straně fronty můžete jako název fronty použít azure
název vaší fronty. Pokud tato fronta neexistuje, RabbitMQ ji vytvoří za vás. Můžete také zvolit název fronty, která již existuje. Ostatní možnosti můžete ponechat jako výchozí.
Pak na destination
straně věcí zvolte AMQP 1.0
jako protokol. URI
Do pole zadejte připojovací řetězec, který jste získali z předchozího kroku, jste převedli azure připojovací řetězec do formátu RabbitMQ. Měl by vypadat takto:
amqps://rabbitmq-shovel:StringOfRandomChars@rabbitmq.servicebus.windows.net:5671/?sasl=plain
Address
Do pole zadáme název fronty služby Azure Service Bus, v tomto případě se volal from-rabbitmq
. Klikněte na Add Shovel
tlačítko a vaše nastavení by mělo být připravené začít přijímat zprávy.
Publikování zpráv z RabbitMQ do služby Azure Service Bus
V rozhraní RabbitMQ Management můžeme přejít na Queues
, vybrat frontu azure
a vyhledat Publish message
panel. Zobrazí se formulář, který vám umožní publikovat zprávy přímo do fronty. V našem příkladu jen přidáme first message
jako Payload
a stiskneme Publish Message
:
Vraťte se do Azure a zkontrolujte frontu. Klikněte Service Bus Explorer
na levý panel a potom klikněte na tlačítko Náhled . Pokud všechno proběhlo dobře, uvidíte, že vaše fronta teď obsahuje jednu zprávu. Yay, blahopřejeme!
Ale pojďme se ujistit, že zpráva je ta, kterou jste odeslali z RabbitMQ. Peek
Vyberte kartu a kliknutím na Peek
tlačítko načtěte poslední zprávy ve frontě. Kliknutím na zprávu zkontrolujte její obsah. Měli byste vidět něco jako na obrázku níže, kde je uvedený.first message
Rekapitulace
Blahopřejeme! Dosáhl jsi toho hodně! Podařilo se vám získat zprávy z RabbitMQ do Služby Azure Service Bus, pojďme si zrekapitulovat kroky:
- Vytvoření oboru názvů služby Azure Service Bus
- Přidání fronty do oboru názvů
- Přidání zásad SAS do fronty
- Získání připojovací řetězec fronty
- Povolení modulu plug-in RabbitMQ shovel a rozhraní pro správu
- Převod připojovací řetězec Azure Service Bus do formátu AMQP rabbitMQ
- Přidání nové zkosení do RabbitMQ a jeho připojení ke službě Azure Service Bus
- Publikování zpráv
Podle předchozích kroků jste integrovali oblasti vaší organizace, které byly mimo Azure. Modul plug-in Shovel vám umožnil odesílat zprávy z RabbitMQ do služby Azure Service Bus. To má obrovské výhody, protože teď můžete důvěryhodným třetím stranám umožnit připojení svých aplikací k nasazení Azure.
Na konci je zasílání zpráv o povolení připojení a s touto technikou jsme právě otevřeli novou.
Další kroky
- Další informace o službě Azure Service Bus
- Další informace o podpoře AMQP 1.0 ve službě Service Bus