Otomatik Mühendis
RabbitMQ Kurulumu ve Kullanımı
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.
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ı
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
Ş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.