Sdílet prostřednictvím


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.

Create resource

Pak vyberte Možnost Integrace a kliknutím na Azure Service Bus vytvořte obor názvů zasílání zpráv:

Select Azure Service bus

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.

Create namespace

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:

Create namespace confirmation

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.

Resource list with new namespace

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:

Create queue

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 do služby 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.

Add SAS Policy

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 na ni kliknutím zobrazíte primární Připojení ion řetězec. Použijeme ho k tomu, aby rabbitMQ mluvil s Azure Service Busem:

Get SAS Policy

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.

Convert connection string

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 Managementumí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.

Add RabbitMQ Shovel

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 Shoveltlačí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:

Publish first 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!

Azure Service Bus Queue

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

Queue peek

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:

  1. Vytvoření oboru názvů služby Azure Service Bus
  2. Přidání fronty do oboru názvů
  3. Přidání zásad SAS do fronty
  4. Získání připojovací řetězec fronty
  5. Povolení modulu plug-in RabbitMQ shovel a rozhraní pro správu
  6. Převod připojovací řetězec Azure Service Bus do formátu AMQP rabbitMQ
  7. Přidání nové zkosení do RabbitMQ a jeho připojení ke službě Azure Service Bus
  8. 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