Dela via


Integrera Service Bus med RabbitMQ

I den här guiden ska vi lära oss hur du skickar meddelanden från RabbitMQ till Service Bus.

Här är några scenarier där vi kan använda dessa funktioner:

  • Edge-installationer: Vi har en gränskonfiguration där vi skickar meddelanden till RabbitMQ, men vi vill vidarebefordra dessa meddelanden till Azure Service Bus för vidare bearbetning, så att vi kan använda många av Azure Big Data-funktionerna.
  • Hybrid Cloud: Ditt företag har precis förvärvat en tredje part som använder RabbitMQ för sina meddelandebehov. De finns i ett annat moln. När de övergår till Azure kan du redan börja dela data genom att överbrygga RabbitMQ med Azure Service Bus.
  • Tredjepartsintegrering: En tredje part använder RabbitMQ som mäklare och vill skicka sina data till oss, men de ligger utanför vår organisation. Vi kan ge dem SAS-nyckel som ger dem åtkomst till en begränsad uppsättning Azure Service Bus-köer där de kan vidarebefordra sina meddelanden till.

Listan fortsätter, men vi kan lösa de flesta av dessa användningsfall genom att överbrygga RabbitMQ till Azure.

Först måste du skapa ett kostnadsfritt Azure-konto genom att registrera dig här

När du har loggat in på ditt konto går du till Azure Portal och skapar ett nytt Azure Service Bus-namnområde. Namnområden är de omfångscontainrar där våra meddelandekomponenter kommer att finnas, till exempel köer och ämnen.

Lägga till ett nytt Azure Service Bus-namnområde

I Azure Portal klickar du på den stora plusknappen för att lägga till en ny resurs

Skapa resurs

Välj sedan Integrering och klicka på Azure Service Bus för att skapa ett meddelandenamnområde:

Välj Azure Service Bus

Du uppmanas att ange namnområdesinformationen. Ange den prenumeration som du vill använda. Om du inte har någon resursgrupp kan du skapa en ny.

Skapa namnområde

Använd rabbitmq för Namespace name, men det kan vara vad du vill. Ange East US sedan för platsen. Välj Basic som prisnivå.

Om allt gick bra bör du se följande bekräftelseskärm:

Skapa namnområdesbekräftelse

Sedan på Azure Portal visas ditt nya rabbitmq namnområde där. Klicka på den för att komma åt resursen så att du kan lägga till en kö i den.

Resurslista med nytt namnområde

Skapa vår Azure Service Bus-kö

Nu när du har ditt Azure Service Bus-namnområde klickar du på Queues knappen till vänster under Entities, så att du kan lägga till en ny kö:

Skapa kö

Namnet på kön är from-rabbitmq precis som en påminnelse om varifrån meddelandena kommer. Du kan lämna alla andra alternativ som standard, men du kan ändra dem så att de passar appens behov.

Aktivera plugin-programmet RabbitMQ Spade

För att skicka meddelanden från RabbitMQ till Azure Service Bus använder vi plugin-programmet Spade som medföljer RabbitMQ. Du kan aktivera plugin-programmet och dess visuella gränssnitt med det här kommandot:

rabbitmq-plugins enable rabbitmq_shovel_management

Du kan behöva köra kommandot som rot.

Nu är det dags att hämta de autentiseringsuppgifter som krävs för att ansluta RabbitMQ till Azure.

Ansluta RabbitMQ till Azure Service Bus

Du måste skapa en SAS (Shared Access Policy ) för din kö, så att RabbitMQ kan publicera meddelanden till den. Med en SAS-princip kan du ange vilken extern part som får göra med resursen. Tanken är att RabbitMQ kan skicka meddelanden, men inte lyssna eller hantera kön.

Lägg till SAS-princip

Markera rutan Send och klicka sedan för Create att ha vår SAS-princip på plats.

När principen har skapats klickar du på den för att se den primära anslutningssträngen. Vi ska använda den för att låta RabbitMQ prata med Azure Service Bus:

Hämta SAS-princip

Innan du kan använda den anslutningssträng måste du konvertera den till RabbitMQ:s AMQP-anslutningsformat. Gå till verktyget anslutningssträng konverterare och klistra in anslutningssträng i formuläret och klicka på konvertera. Du får en anslutningssträng som är RabbitMQ redo. (Den webbplatsen kör allt lokalt i webbläsaren så att dina data inte skickas via kabeln). Du kan komma åt källkoden på GitHub.

Konvertera anslutningssträng

Öppna nu plugin-programmet RabbitMQ-hantering i våra webbläsare http://localhost:15672/#/dynamic-shovels och gå till Admin -> Shovel Management, där du kan lägga till din nya spade som tar hand om att skicka meddelanden från en RabbitMQ-kö till din Azure Service Bus-kö.

Lägg till RabbitMQ Spade

Här anropar du spaden azure och väljer AMQP 0.9.1 som källprotokoll. På skärmbilden har amqp://vi , vilket är standard-URI:n som ansluter oss till en lokal RabbitMQ-server. Se till att anpassa det till din aktuella distribution.

På kösidan av saker kan du använda azure som namnet på din kö. Om den kön inte finns skapar RabbitMQ den åt dig. Du kan också välja namnet på en kö som redan finns. Du kan lämna de andra alternativen som standard.

Välj sedan som protokoll på sidan destination av saker AMQP 1.0 . I fältet URI anger du den anslutningssträng som du fick från föregående steg om du konverterade din Azure-anslutningssträng till RabbitMQ-formatet. Den bör se ut så här:

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

I fältet Address anger vi namnet på din Azure Service Bus-kö. I det här fallet kallades from-rabbitmqden . Klicka på Add Shoveloch konfigurationen bör vara redo att börja ta emot meddelanden.

Publicera meddelanden från RabbitMQ till Azure Service Bus

I gränssnittet RabbitMQ Management kan vi gå till Queues, välja azure kön och söka efter panelen Publish message . Det visas ett formulär som gör att du kan publicera meddelanden direkt till kön. I vårt exempel ska vi bara lägga first message till som och trycka på Payload Publish Message:

Publicera det första meddelandet

Gå tillbaka till Azure och inspektera din kö. Klicka Service Bus Explorer på den vänstra panelen och klicka sedan på knappen Granska . Om allt gick bra ser du att din kö nu har ett meddelande. Yay, grattis!

Azure Service Bus-kö

Men låt oss se till att meddelandet är det du skickade från RabbitMQ. Välj fliken Peek och klicka på Peek knappen för att hämta de sista meddelandena i kön. Klicka på meddelandet för att kontrollera innehållet. Du bör se något som liknar bilden nedan där du first message visas.

Kötitt

Nu ska vi sammanfatta

Grattis! Du har uppnått mycket! Du har lyckats hämta dina meddelanden från RabbitMQ till Azure Service Bus. Nu ska vi sammanfatta stegen:

  1. Skapa ett Azure Service Bus-namnområde
  2. Lägga till en kö i namnområdet
  3. Lägga till en SAS-princip i kön
  4. Hämta kön anslutningssträng
  5. Aktivera plugin-programmet RabbitMQ spade och hanteringsgränssnittet
  6. Konvertera Azure Service Bus-anslutningssträng till RabbitMQ:s AMQP-format
  7. Lägg till en ny spade i RabbitMQ och anslut den till Azure Service Bus
  8. Publicera meddelanden

Genom att följa de föregående stegen har du integrerat områden i din organisation som fanns utanför Azure. Med plugin-programmet Spade kan du skicka meddelanden från RabbitMQ till Azure Service Bus. Detta har enorma fördelar eftersom du nu kan tillåta betrodda tredje parter att ansluta sina appar till din Azure-distribution.

I slutändan handlar meddelanden om att aktivera anslutningar, och med den här tekniken har vi precis öppnat en ny.

Nästa steg