上篇文章:
当RabbitMQ只部署到一个节点上,如果节点宕机就会导致整个系统不可用,集群方案就是解决这一类问题的方案(MySQL、Redis等集群思想也都差不多)。
由于真正的集群搭建成本较高,因此采用伪集群搭建。
1 安装RabbitMQ
这一步不再演示。
2 启动多个节点
在使用命令service rabbitmq-server start启动了一个节点后(主节点),使用rabbitmqctl status来查看当前节点的具体状态和信息(重点查看节点名称和端口号):


现在另启动两个节点,节点1是rabbitmq1(开放端口5673服务端口,15673管理端口),节点2是rabbitmq2(开放端口5674服务端口,15674管理端口),命令如下:
bash
RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbitmq1 rabbitmq-server -detached
RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" RABBITMQ_NODENAME=rabbitmq2 rabbitmq-server -detached

去浏览器测试这两个节点的管理界面是否可以打开(ip:管理端口),如果可以就说明启动成功。
接下来重置两个节点,首先要停止节点才能重置,命令如下:
bash
rabbitmqctl -n rabbitmq1 stop_app
rabbitmqctl -n rabbitmq1 reset
rabbitmqctl -n rabbitmq2 stop_app
rabbitmqctl -n rabbitmq2 reset

把两个节点添加到主节点的集群中,命令如下:
bash
rabbitmqctl -n rabbitmq1 join_cluster rabbit@master
rabbitmqctl -n rabbitmq2 join_cluster rabbit@master


重启这两个节点:

查看集群状态:
bash
rabbitmqctl cluster_status -n rabbit

在管理界面也可以查看集群信息,登录主节点后(此时主节点的账号和主节点的队列、交换机等信息已经同步):

注意:集群中的队列、交换机等信息是共享的,即在任意一个节点都可以查询到。但是消息不是共享的,消息在哪个队列所属的节点,该节点关闭后,消息也会消失。
下篇文章: