高可用集羣架構
服務器設置
角色 | IP | 組件 |
node101 | 192.168.153.101 | rabbitmq + haproxy + keepalived |
rnode102 | 192.168.153.102 | rabbitmq + haproxy + keepalived |
node103 | 192.168.153.103 | rabbitmq |
環境準備
1.使用虛擬機安裝CentOS7系統
2.調整網絡設置靜態IP192.168.153.101
3.安裝 Erlang 和RabbitMQ,可以參見https://my.oschina.net/liuyuantao/blog/4258593
4.安裝HAProxy和Keepalived
5.將虛擬機克隆出3份,分別調整ip、hostname和hosts
集羣搭建
1.修改hosts和hostname
三臺機器分別執行下面命令
vim /etc/hosts
添加
192.168.153.101 node101
192.168.153.102 node102
192.168.153.103 node103
vim /etc/hostname
刪除內容後,分別添加node101、node102、node103
2.以確保各個節點的cookie文件使用的是同一個值
在node101上執行遠程操作命令
scp /var/lib/rabbitmq/.erlang.cookie root@node102:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@node103:/var/lib/rabbitmq/.erlang.cookie
3.啓動RabbitMQ服務
順帶啓動Erlang虛擬機和RbbitMQ應用服務(在三臺節點上分別執行以下命令)
rabbitmq-server -detached
4.在節點node102執行
rabbitmqctl stop_app
注:rabbitmqctl stop會將Erlang虛擬機關閉,rabbitmqctl stop_app只關閉RabbitMQ服務
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node101
rabbitmqctl start_app
5.在節點node103執行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node101
rabbitmqctl start_app