高可用集群架构
服务器设置
角色 | 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