RabbitMQ kurulum ve küme ayarları

Alparslan Ozturk
2 min readSep 15, 2021

--

Docker olarak kullanmayacaksanız. Debian yada Centos için repolarını ayarlayarak başlayalım. ayrınci için ( https://www.rabbitmq.com/download.html) adresine bakabilirsiniz. zorunlu olarak 2 adet repo ekleliyorsunuz; RabbitMQ ve yazılım üretildiği Erlang dil paketleri…

curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bashcurl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

Tüm sunucularda paket kurulumu yapılır. Ardından ilegili dosyada sunucu kısa ismi yazılabilir. “NODENAME” Ayrıca WebUI için management plugin enable yapmalıyız. bkz ( htttp://os1:15672/ )

yum install -y rabbitmq-servervim /etc/rabbitmq/rabbitmq-env.conf
# NODENAME=os1 ….
systemctl start --now rabbitmq-serverrabbitmq-plugins enable rabbitmq_management

Küme kuracağımız için cerezlerin hepsinde aynı olaması gerekiyor. os1 üzerinde aşağıdaki komut çalıştırılabilir.

cat /var/lib/rabbitmq/.erlang.cookiefor i in 2 3 4; do scp /var/lib/rabbitmq/.erlang.cookie os$i:/var/lib/rabbitmq/.erlang.cookie; done

os2, os3, ve os4 üzerinde aşağıdaki ayarlar yapılır.

rabbitmqctl stop_app
rabbitmqctl join_cluster os1@os1
rabbitmqctl start_app
rabbitmqctl cluster_status

bir kullanıcı ekliyoruz. ve os1 üzerinde son kontrolleri yapıyoruz.

rabbitmqctl add_user “alp” “parola”
rabbitmqctl set_user_tags alp management administrator
rabbitmqctl set_permissions alp “.*” “.*” “.*”
rabbitmqctl delete_user guest
rabbitmqctl list_users
rabbitmq-diagnostics check_running

(Opsyonel) Eğer belirli queue yada exchange için izin vermek isterseniz önce kullanıcıyı tag vermeden ekleyin sonra regex ile yazma /okuma izinlerinde regex kullabilirsiniz; zaten hiç bir şey yazmazsanız “” hakkı olmuyor.

rabbitmqctl add_user “test” “parola”
rabbitmqctl set_permissions alp “^TEST-siparis.*” “TEST-siparsi.*” “”

komut: rabbitmqctl set_permissions test “.*” “.*” “.*”

Genelde HA kurulumlarında tüm nodların mirror olması gereksizdir. Ancak biz aşağıda tüm “.*” queue ve exchangelerin OTOMATIK mirror yapılmasını sağlayacağız. Varsayılan manual sync dir.

rabbitmq-diagnostics ping

rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
rabbitmqctl list_policies;

isterseniz belirli queue ve excahgen için regex ile mirror policy ayarları yapabilirsiniz. ama bu bir secenektir.

örnek1: İki node üzerine “siparisler-” ile başlayan queue ler;

rabbitmqctl set_policy ha-siparis “^siparisler-\.” ‘{“ha-mode”:”exactly”,”ha-params”:2,”ha-sync-mode”:”automatic”}’

örnek2: “bildirim-” ile başlayan queue lere belirli sunucularada mirrorlamak için;

rabbitmqctl set_policy ha-bildirim “^bildirim-\.” ‘{“ha-mode”:”nodes”,”ha-params”:[“os2@os2”, “os4@os4”]}’

--

--

No responses yet