Erlang diliyle geliştirilmiş olan bir uygulamadan bir mesajı alıp başka bir uygulamaya veya uygulamalara sırasıyla ileten open source bir mesaj kuyruk sistemidir.
Resim-1
Kurulum yaptığım OS : Sles 15 SP2
Kullanacağım Node Sayısı : 3
Kuruluma Başlamadan Önce:
Resim-2
3 Adet Sles 15 SP2 sunucu kurdum sunucuların tüm update ve upgradelerini tamamladım.
Her birine RABBITMQ_MNESIA_BASE için ayrı ayrı bir disk ekledim .(200gb)
3 node içinde /etc/hosts altında tüm sunucuların gerçek ip adresleri ile beraber hostnameleri girilmesi gerekiyor.
Ip adresi hostname
Ip adresi hostname
Ip adresi hostname
Her sunucunun mail atıyor olması gerekiyor postfix veya benzeri bi uygulama ile bunun olmasını sağlamalısınız.
RabbitMQ Kurulum
Resim-3
zypper in erlang
Ardından kurulan paket sonrasında bu yapacağımız kritik ayar çok önemli
vi /usr/lib/systemd/system/epmd.socket
Listener Stream 0.0.0.0:4369 bu şekilde ayarlayınız.
Resim-4
Kaydedip çıkın.
systemctl enable epmd.service
systemctl start epmd.service
Komutuyla epmd servisini çalıştırın ve özellikle aşağıdaki komutla kontrol edin.
ss –tulpn | grep 4369
Resim-5
Eğer yukardaki gibi çıktı aldıysanız herşey yolunda demektir. ( 0.0.0.0:4369)
Şimdi rabbitmq servisini kurmaya geldi.
zypper in rabbitmq-server
Bu komutla beraber socat dependecie de install olması gerekiyor.
Rabbitmq servisi yüklendikten sonra
vi /etc/rabbitmq/rabbitmq-env.conf içine girilir.
RABBITMQ_MNESIA_BASE=Her sunucu için bahsetmiş olduğum eklenen disk yolu
NODENAME=rabbit@sunucuhostnameadı
Bu ayarlar girilir ve kaydedilir.
Ardından
vi /etc/rabbitmq/rabbitmq.conf
içine girilir.
default_user = Kullanıcıadı
default_pass = Şifre
Değerler girilir ve kaydedilir.
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
systemctl status rabbitmq-server komutuyla status kontrol edilir.
Resim-6
ps –ef | grep rabbitmq ilede çalışan proccesler görülür.
Rabbitmq servisini kurdugumuza göre diğer 2 sunucuda da aynı işlemler tekrarlanır.
Bütün hepsinde aynı sonucu aldığınızda cluster kurulumuna ve pluginleri enable etme aşamasına geçilir.
RabbitMQ Cluster Kurulumu
Resim-7
Kurulan her sunucuda aşağıdaki dosya içine girilir ve ilgili satırlar eklenir.
vi /etc/rabbitmq/rabbitmq.conf
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
cluster_formation.classic_config.nodes.1 = rabbit@hostname1
cluster_formation.classic_config.nodes.2 = rabbit@hostname2
cluster_formation.classic_config.nodes.3 = rabbit@hostname3
Kaydedip çıkılır her 3 sunucuda da bu ayarlar girilir.
Sonra bir sunucu belirlenir ben ilk kurduğum sunucuyu belirledim, bu sunucu içinde aşağıdaki dosya diğer 2 sunucuya da kopyalanır.
vi /var/lib/rabbitmq/.erlang.cookie bu ilk sunucudaki dosyanın içeriği diğer 2 sunucuya aynı dosya yoluna kopyalanır.
Sonra zypper in rabbitmq-server-plugins kurulur
Ardından
rabbitmq-plugins enable rabbitmq_management rabbitmq_top
Bu pluginler devreye alındıktan sonra webbrowser üstünden 15672 portundan clusterlara erişimimiz açılmış olacak.
Bu işlemi her 3 sunucuda da yapın.
Şimdi ise 1 sunucu master olarak belirleyin.
Aşağıdaki komutları master seçmediğiniz diğer 2 sunucuda girin
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@hostname1
rabbitmqctl start_app
/etc/rabbitmq/rabbitmq.conf içine girdiğiniz username ve password ile 1. Sunucu hostname veya ip adresi ile browser üstünden aşağıdaki adrese girin.
Resim-8
RabbitMQ kurulumu ve cluster yapısı başarıyla oluşturulmuştur.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
TAGs:RabbitMQ Kurulumu, RabbitMQ nedir, RabbitMQ Cluster yapılandırması, RabbitMQ makale