Otomatik Mühendis

RabbitMQ Kurulumu ve Kullanımı

günü tarafından yayınlandı.

RabbitMQ, Unix üzerine Erlang ile yazılmış mesaj kuyruğu sistemidir. MSMQ’dan performans olarak daha iyidir ve içerdiği “Publish/Subscribe” ve “Routing” özellikleri sayesinde AMQP (Gelişmiş Mesaj Kuyruğu Protokolü) tanımına oldukça yakındır.

Kurulumu

Öncelikle Erlang framework’ü makinanızda yüklü olmalı. Uygun versiyonu Erlang/OTP indirme sayfasından bulabilirsiniz. Erlang kurmadığınız takdirde aşağıdaki gibi bir uyarıyla karşılaşacaksınız.

Erlang bulunamadı hatası

Daha sonra RabbitMQ’yu şu sayfadan indirerek kurabilirsiniz.

Programınız ile RabbitMQ bağlantısını kurabilmek için, isteğinize göre client kütüphanesi kurabilirsiniz. Bu sayfadan RabbitMQ’nun kendi kütüphanesini veya şuradan MassTransit service bus’ını indirebilirsiniz.

Kullanımı

Başlat menüsünde RabbitMQ görünümü

Kurulum başarıyla gerçekleştiyse artık bu servisi kullanmamızı kolaylaştıracak arayüzü de kurabiliriz. RabbitMQ Management eklentisini aktifleştirmemiz gerekiyor. Bunun için Başlat menüsündeki RabbitMQ Server klasörü içerisinde RabbitMQ Command Prompt yönetici olarak açılır. Aşağıdaki kod çalıştırılır.

rabbitmq-plugins enable rabbitmq_management

Bu eklenti bağımlı eklentilerle birlikte aktif edilir. Aşağıdaki Komut İstemi penceresinden de görebileceğiniz gibi benim kurduğum sırada toplam 6 eklenti aktif edilmiş görülüyor.

Sonrasında değişikliklerin servise de yansıması için servisi durdurup başlatmamız gerekir. Bunun için de aşağıdaki komutları sırasıyla çalıştırırız.

rabbitmq-service.bat stop
rabbitmq-service.bat install
rabbitmq-service.bat start

RabbitMQ Komutlar

Şimdi http://localhost:15672 adresine girerek RabbitMQ portalini kurcalayabiliriz. Öntanımlı kullanıcı adı guest ve şifre de yine guest‘dir.

Önemli! Guest kullanıcısı sadece localhost adresinde çalışır. Dışarıdan erişim için yeni bir kullanıcı tanımlanmalıdır.

Yeni bir kullanıcı tanımlamak için RabbitMQ Command Prompt üzerinde aşağıdaki komutları çalıştırabilirsiniz. Bu komutlar R1spencere şifresiyle admin yetkilerine sahip root kullanıcısını oluşturur.

rabbitmqctl add_user root R1spencere
rabbitmqctl set_user_tags root administrator
rabbitmqctl set_permissions -p / root ".*" ".*" ".*"

Servise dışarıdan erişim için 5672 nolu portun dışarıya açık olması gerekmektedir.

Ayrıca kullanım yöntemleri konusunda örneklendirmeli bilgiyi Tutorials sayfasından bulabilirsiniz.

Hata Notu: Aşağıdaki hatalar ile zaman zaman karşılaşıyordum bunun çözümünü bu sitedeki yönteme ek olarak C:\Users\[username]\AppData\Roaming\RabbitMQ dizinini de silerek buldum.

Error: The RabbitMQ service terminated with the following error: The process terminated unexpectedly.
Error: RabbitMQ: Erlang machine stopped instantly (distribution name conflict?). The service is not restarted as OnFail is set to ignore.
Warning: RabbitMQ: Erlang machine voluntarily stopped. The service is not restarted as OnFail is set to ignore.