一、工作环境
两个节点,IP分别是192.168.1.11和192.168.1.12,主机名分别是test1和test2
二、安装RabbitMQ
参考《CentOS Linux下安装RabbitMQ》,分别在两个节点上安装Erlang和RabbitMQ。
三、修改/etc/hosts
两个节点的hosts上都加上下面的描述
192.168.1.11 test1 192.168.1.12 test2
四、设置Erlang Cookie
将test1中的Erlang Cookie 文件:/var/lib/rabbitmq/.erlang.cookie复制到test2,由于这个文件权限是 400,所以需要先修改test2中的该文件权限为 777。
chmod 777 /var/lib/rabbitmq/.erlang.cookie
然后通过scp将test1上的erland cookie文件拷贝到test2,完成后将test2上的erland cookie文件的权限设置回来
chmod 400 /var/lib/rabbitmq/.erlang.cookie chown rabbitmq /var/lib/rabbitmq/.erlang.cookie chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
五、停止各个节点的RabbitMQ服务
/etc/init.d/rabbitmq-server stop
六、使用 -detached 参数运行各节点
rabbitmq-server -detached
七、组建集群
将test2和test1组成集群,在test2上运行下面的指令
rabbitmqctl stop_app rabbitmqctl join_cluster rabbit@test1 rabbitmqctl start_app
集群配置好后,可以在 RabbitMQ 任意节点上执行
rabbitmqctl cluster_status
来查看是否集群配置成功。
出现如下字样就是配置成功,
Cluster status of node rabbit@test1 ... [{nodes,[{disc,[rabbit@test1,rabbit@test2]}]}, {running_nodes,[rabbit@test2,rabbit@test1]}, {cluster_name,<<"rabbit@test2">>}, {partitions,[]}]
八、设置镜像队列策略
在任意一个节点上执行
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一致。
九、安装并配置 HAProxy
在 192.168.1.13 上安装 HAProxy,然后修改 /etc/haproxy/haproxy.cfg
listen rabbitmq_cluster 0.0.0.0:5672 mode tcp balance roundrobin server node1 192.168.1.11:5672 check inter 2000 rise 2 fall 3 server node2 192.168.1.12:5672 check inter 2000 rise 2 fall 3
十、设置开机启动
关闭rabbitmq-server自启动服务
chkconfig rabbitmq-server off
编辑rc.local,加入集群配置后的启动命令
vi /etc/rc.local
/usr/sbin/rabbitmq-server -detached
除非注明,本博客文章均为原创,转载请以链接形式标明本文地址
本文地址: http://blog.cnwyhx.com/centos-linux-6-x-install-ha-rabbitmq-cluster