Service Bus'ı RabbitMQ ile tümleştirme
Bu kılavuzda RabbitMQ'den Service Bus'a nasıl ileti göndereceğinizi öğreneceğiz.
Bu özellikleri kullanabileceğimiz birkaç senaryo aşağıdadır:
- Edge Kurulumları: RabbitMQ'ye ileti gönderdiğimiz bir uç kurulumumuz var, ancak daha fazla işlem için bu iletileri Azure Service Bus'a iletmek istiyoruz, böylece Azure Büyük Veri özelliklerinin çoğunu kullanabiliriz.
- Hibrit Bulut: Şirketiniz, mesajlaşma ihtiyaçları için RabbitMQ kullanan bir üçüncü taraf satın aldı. Farklı bir buluttalar. Azure'a geçiş yaparken, RabbitMQ ile Azure Service Bus arasında köprü kurarak veri paylaşmaya başlayabilirsiniz.
- Üçüncü Taraf Tümleştirmesi: Üçüncü taraf, RabbitMQ'yi aracı olarak kullanır ve verilerini bize göndermek ister, ancak kuruluşumuzun dışındadır. Onlara, iletilerini iletebilecekleri sınırlı sayıda Azure Service Bus kuyruğuna erişim sağlayan SAS Anahtarı sağlayabiliriz.
Liste devam eder, ancak RabbitMQ'yi Azure'a köprüleyerek bu kullanım örneklerinin çoğunu çözebiliriz.
İlk olarak buradan kaydolarak ücretsiz bir Azure hesabı oluşturmanız gerekir
Hesabınızda oturum açtıktan sonra Azure portalına gidin ve yeni bir Azure Service Bus ad alanı oluşturun. Ad alanları, kuyruklar ve konular gibi mesajlaşma bileşenlerimizin yaşayacağı kapsam kapsayıcılarıdır.
Yeni bir Azure Service Bus Ad Alanı ekleme
Azure portalında büyük artı düğmesine tıklayarak yeni bir kaynak ekleyin
Ardından Tümleştirme'yi seçip Azure Service Bus'a tıklayarak bir mesajlaşma ad alanı oluşturun:
Ad alanı bilgilerini girmeniz istenir. Kullanmak istediğiniz Azure aboneliğini seçin. Kaynak grubunuz yoksa yeni bir grup oluşturabilirsiniz.
için Namespace name
kullanınrabbitmq
, ancak istediğiniz herhangi bir şey olabilir. Ardından konum olarak ayarlayın East US
. Fiyat katmanı olarak seçin Basic
.
Her şey yolunda gittiyse aşağıdaki onay ekranını görmeniz gerekir:
Ardından Azure portalında yeni rabbitmq
ad alanınızın burada listelendiğini görürsünüz. Kaynağa erişmek için kaynağa tıklayarak kuyruğa kuyruk ekleyebilirsiniz.
Azure Service Bus Kuyruğumuzu Oluşturma
Artık Azure Service Bus ad alanınıza sahip olduğunuza göre, yeni bir kuyruk ekleyebilmeniz için sol taraftaki düğmesinin altında Entities
öğesine tıklayınQueues
:
Kuyruğun from-rabbitmq
adı, iletilerin nereden geldiğini hatırlatmak için kullanılacaktır. Diğer tüm seçenekleri varsayılan olarak bırakabilirsiniz, ancak bunları uygulamanızın gereksinimlerine uyacak şekilde değiştirebilirsiniz.
RabbitMQ Kürek Eklentisini Etkinleştirme
RabbitMQ'den Azure Service Bus'a ileti göndermek için RabbitMQ ile birlikte gelen Kürek Eklentisini kullanacağız. Eklentiyi ve görsel arabirimini şu komutla etkinleştirebilirsiniz:
rabbitmq-plugins enable rabbitmq_shovel_management
Bu komutu kök olarak çalıştırmanız gerekebilir.
Şimdi RabbitMQ'yi Azure'a bağlamak için gereken kimlik bilgilerini alma zamanı.
RabbitMQ'yi Azure Service Bus'a bağlama
RabbitMQ'nin ileti yayımlayabilmesi için kuyruğunuz için bir Paylaşılan Erişim İlkesi (SAS) oluşturmanız gerekir. SAS İlkesi, kaynağınızla hangi dış tarafın yapmasına izin verileceğini belirtmenizi sağlar. Fikir, RabbitMQ'nin iletileri gönderebilmesi, ancak kuyruğu dinlememesi veya yönetmemesidir.
Send
Kutuyu işaretleyin ve ardından SAS İlkemizi uygulamak için tıklayınCreate
.
İlke oluşturulduktan sonra Birincil Bağlantı Dizesini görmek için ilkeye tıklayın. RabbitMQ'nin Azure Service Bus ile konuşmasına izin vermek için kullanacağız:
Bu bağlantı dizesi kullanabilmeniz için bunu RabbitMQ'nin AMQP bağlantı biçimine dönüştürmeniz gerekir. Bu nedenle bağlantı dizesi dönüştürücü aracına gidin ve bağlantı dizesi forma yapıştırın, dönüştür'e tıklayın. RabbitMQ'nun hazır olduğu bir bağlantı dizesi alırsınız. (Bu web sitesi, verilerinizin kablo üzerinden gönderilmemesi için tarayıcınızda her şeyi yerel olarak çalıştırır). Kaynak koduna GitHub'dan erişebilirsiniz.
Şimdi tarayıcılarımızda http://localhost:15672/#/dynamic-shovels
RabbitMQ yönetim eklentisini Admin -> Shovel Management
açın ve adresine gidin. Burada, bir RabbitMQ kuyruğundan Azure Service Bus kuyruğunuza ileti gönderme işlemini üstlenecek yeni kürekinizi ekleyebilirsiniz.
Burada, Kürek'inizi azure
arayın ve kaynak protokol olarak seçin AMQP 0.9.1
. Ekran görüntüsünde, bizi yerel bir RabbitMQ sunucusuna bağlayan varsayılan URI olan öğesine sahibiz amqp://
. Bunu geçerli dağıtımınıza uyarlamayı unutmayın.
Öğelerin kuyruk tarafında, kuyruğunuzun adı olarak kullanabilirsiniz azure
. Bu kuyruk yoksa RabbitMQ sizin için oluşturur. Zaten var olan bir kuyruğun adını da seçebilirsiniz. Diğer seçenekleri varsayılan olarak bırakabilirsiniz.
destination
Ardından, bir şeyin yanında protokol olarak seçinAMQP 1.0
. URI
alanına, Azure bağlantı dizesi RabbitMQ biçimine dönüştürdüyseniz, önceki adımda aldığınız bağlantı dizesini girin. Şu şekilde görünmelidir:
amqps://rabbitmq-shovel:StringOfRandomChars@rabbitmq.servicebus.windows.net:5671/?sasl=plain
Address
Alanına Azure Service Bus Kuyruğunuzun adını gireceğiz. Bu örnekte adı olarak adlandırılmıştırfrom-rabbitmq
. öğesine tıklayın Add Shovel
ve kurulumunuz iletileri almaya başlamaya hazır olmalıdır.
RabbitMQ'den Azure Service Bus'a İleti Yayımlama
RabbitMQ Management arabiriminde adresine gidebilir Queues
, kuyruğu seçebilir azure
ve paneli arayabiliriz Publish message
. İletileri doğrudan kuyruğunuzda yayımlamanıza olanak sağlayan bir form görüntülenir. Örneğimiz için yalnızca öğesini ekleyeceğiz first message
ve tuşuna Payload
basacağız Publish Message
:
Azure'a dönün ve kuyruğunuzu inceleyin. Sol panele tıklayın Service Bus Explorer
ve ardından Göz at düğmesine tıklayın. Her şey yolunda giderse kuyruğunuzda artık bir ileti olduğunu görürsünüz. Yaşasın, tebrikler!
Ama bu mesajın RabbitMQ'dan gönderdiğiniz mesaj olduğundan emin olalım. Sekmeyi Peek
seçin ve kuyruğunuzdaki Peek
son iletileri almak için düğmeye tıklayın. İçeriğini incelemek için iletiye tıklayın. Aşağıdaki first message
görüntüye benzer bir şey görmeniz gerekir.
Özetleyelim
Tebrikler! Çok şey başardın! RabbitMQ'den Azure Service Bus'a iletilerinizi almayı başardınız, şimdi adımları özetleyelim:
- Azure Service Bus Ad Alanı Oluşturma
- Ad alanına kuyruk ekleme
- Kuyruğunuza SAS İlkesi ekleme
- Kuyruk bağlantı dizesi alma
- RabbitMQ kürek eklentisini ve yönetim arabirimini etkinleştirin
- Azure Service Bus bağlantı dizesi RabbitMQ'nin AMQP biçimine dönüştürme
- RabbitMQ'ye yeni bir Kürek ekleyin ve Azure Service Bus'a bağlayın
- İletileri yayımlama
Önceki adımları izleyerek kuruluşunuzun Azure dışındaki alanlarını tümleştirdiniz. Kürek eklentisi RabbitMQ'den Azure Service Bus'a ileti göndermenize izin verdi. Artık güvenilen üçüncü tarafların uygulamalarını Azure dağıtımınıza bağlamasına izin verebildiğiniz için bu çok büyük avantajlara sahiptir.
Sonunda, mesajlaşma bağlantıları etkinleştirmekle ilgili ve bu teknikle yeni bir tane açtık.
Sonraki adımlar
- Azure Service Bus hakkında daha fazla bilgi edinin
- Service Bus'ta AMQP 1.0 desteği hakkında daha fazla bilgi edinin