設定RabbitMQ的Cluster
讓整個vCD系統
不會因為單一的RabbitMQ異常
導致
整個vCD運作跟著異常
Cluster的部分
我想讓rabbitmq-1 和 rabbitmq-2之間
可以直接透過rabbit 帳號ssh過去不用在輸入密碼
先建個 rabbit帳號
以及設定密碼
useradd rabbit
passwd rabbit
產生rabbit的金鑰
su rabbit
ssh-keygen -t rsa
ls -al ~/.ssh
將剛產生的 id_rsa.pub
加到另外一台主機的 ~/.ssh/authorized_keys 檔
ssh-copy-id -i ~/.ssh/id_rsa.pub rabbit@192.168.11.65
ssh-copy-id -i ~/.ssh/id_rsa.pub rabbit@192.168.11.66
先連一下
ssh rabbitmq-1
ssh rabbitmq-2
複製cookie檔案 到rabbitmq-2這台
scp /var/lib/rabbitmq/.erlang.cookie rabbitmq-2:/var/lib/rabbitmq/.erlang.cookie
在rabbitmq-2
重新設定rabbitmq服務
systemctl restart rabbitmq-server
rabbitmqctl stop_app
rabbitmqctl reset
在rabbitmq-2
加到Cluster,並重啟服務
rabbitmqctl join_cluster rabbit@rabbitmq-1
rabbitmqctl start_app
回到RabbirMQ-1
確認cluster狀態
rabbitmqctl cluster_status
單只有Cluster是不夠的
原因在於RabbitMQ的Node
當有queue進到RabbitMQ Node時
他只會在該Node上,但若這個Node不幸掛掉了
另外一個Node則就不會知道queue
所以需要同步
透過指令的方式新增Policy
rabbitmqctl set_policy ha-all "." '{"ha-mode":"all"}'
應該也可以看的到
我在rabbitmq-1所下新增的policy
馬上在rabbitmq-2上面也會出現
沒有留言:
張貼留言