Centos系统下RabbitMQ集群部署流程记录(一)

为了把RabbitMQ实施到项目中,我们计划使用集群部署,所以特地在测试环境中进行了集群部署测试,本测试过程中部署了3台服务器,Centos 6.5(64位),特记录如下操作。

思路:
那么具体如何实现RabbitMQ高可用,我们先搭建一个普通集群模式,在这个模式基础上再配置镜像模式实现高可用,Rabbit集群前增加一个反向代理,生产者、消费者通过反向代理访问RabbitMQ集群。

架构图如下:图片来自http://www.nsbeta.info

一、设置服务器HOST名称
将三台服务器分别设置为 rabbitmq1、rabbitmq2、rabbitmq3 [修改方法参考:CentOS如何修改主机名 hostname]

二、修改主机文件

1
2
3
4
# vi /etc/hosts
192.168.1.192 rabbitmq1
192.168.1.193 rabbitmq2
192.168.1.194 rabbitmq3

三、设置每个节点Cookie(Erlang Cookie)[非常关键]
3.1 三台服务器先修改文件权限(默认地址为:/var/lib/rabbitmq/.erlang.cookie)

1
# chmod 777  /var/lib/rabbitmq/.erlang.cookie

3.2 读取其中一个节点的cookie, 并复制到其他节点(节点之间通过cookie确定相互是否可通信)。
cookie存放在/var/lib/rabbitmq/.erlang.cookie或者$HOME/.erlang.cookie中。

3.3 三台服务器恢复文件权限

1
# chmod 400 /var/lib/rabbitmq/.erlang.cookie

3.4 三台服务器重起服务

1
# rabbitmqctl stop
1
# rabbitmq-server start

四、设置同步
4.1停止服务(三台服务器均要操作)

1
# rabbitmqctl stop

4.2重置服务(三台服务器均要操作)

1
# rabbitmqctl reset

4.3后台启动节点(三台服务器均要操作)

1
# rabbitmq-server -detached

4.4查看节点状态(三台服务器均要操作)

1
# rabbitmqctl status

五、建立集群(默认就为:普通模式)
以rabbitmq1为主节点,在rabbitmq2上操作如下步骤:

5.1停止服务

1
# rabbitmqctl stop_app

5.2重置服务

1
# rabbitmqctl reset

5.3加入集群
默认为硬盘模式(二选一)

1
# rabbitmqctl join_cluster rabbit@rabbitmq1

可更改为内存模式(二选一)

1
# rabbitmqctl join_cluster --ram rabbit@rabbitmq1

5.4启用节点服务

1
# rabbitmqctl start_app

rabbitmq2上的操作与rabbitmq3的雷同。
最后通过rabbitmqctl cluster_status查看集群的状态信息.

到此,RabbitMQ集群就部署完毕,所有的RabbitMQ用户、交换机等全部都是同步的,除了消息内容;