集群主机信息:node
主机IP | 主机名 |
---|---|
10.0.0.101(做为主节点) | node1 |
10.0.0.102 | node2 |
10.0.0.103 | node3 |
一、按照上一篇博客《单机版Rabbitmq部署 》,里面的安装步骤在三台虚拟机上都一样操做,先安装好单机版rabbitmq服务器
二、三台机器的/etc/hosts都加入下面的内容:
10.0.0.101 node1
10.0.0.102 node2
10.0.0.103 node2cookie
三、中止掉三台的服务,修改两台备节点node2和node3机器上的rabbitmq的cookie文件内容,改为和node1同样的内容:app
1)修改从节点node2上面 .erlang.cookie 文件权限ide
[root@node2 ~]# cd /var/lib/rabbitmq/ #注意,.erlang.cookie通常状况下是在这个位置,可是在部署有一套特殊环境的时候遇到.erlang.cookie是在/root下面,有一些机器在erlang的安装目录下面还有一个.erlang.cookie文件。所以在这里找不到文件的时候,find命令搜索一下 [root@node2 rabbitmq]# chmod 755 .erlang.cookie #由于/var/lib/rabbitmq/.erlang.cookie 只读文件,所以在修改以前须要将文件权限改为可读写的权限,能够暂时改为755
2)删除node2节点.erlang.cookie文件内容,将node1节点的.erlang.cookie内容填进去。node3节点也相同操做code
3)而后分别查看主节点node1和从节点node2和node3上面.erlang.cookie文件的内容,已经变成了同样server
[root@node1 ~]# cat /var/lib/rabbitmq/.erlang.cookie ABBMUFNDBMXKVEFSPVAY [root@node2 ~]# cat /var/lib/rabbitmq/.erlang.cookie ABBMUFNDBMXKVEFSPVAY [root@node3 ~]# cat /var/lib/rabbitmq/.erlang.cookie ABBMUFNDBMXKVEFSPVAY
而后修改从节点node2和node3cookie文件权限blog
[root@node2 ~]#chmod 400 /var/lib/rabbitmq/.erlang.cookie #必定要改为400再启动,不然启动的时候会报错的!!!) [root@node3 ~]#chmod 400 /var/lib/rabbitmq/.erlang.cookie
四、从新启动两个从节点服务:
node1主节点不须要重启。
万一主节点node1须要重启,启动方式也和原来的方式同样,由于cookie文件没有变化,而且须要访问、登陆rabbitmq
[root@node1 rabbitmq]# service rabbitmq-server start Starting rabbitmq-server (via systemctl): [ 肯定 ]
node2和node3用 rabbitmq-server -detached命令启动,由于修改了原来的cookie文件,使用service rabbitmq-server start启动,会报错,没法启动:进程
先kill掉从节点node2和node3节点的rabbitmq服务进程,再分别从新启动:
启动node2节点:
[root@node2 rabbitmq]# rabbitmq-server -detached Warning: PID file not written; -detached was passed.
启动node3节点:
[root@node3 rabbitmq]# rabbitmq-server -detached Warning: PID file not written; -detached was passed.
五、配置三台服务器的主从集群——node1做为主节点,那么在node2和node3上面都执行下面的命令:
#rabbitmqctl stop_app #rabbitmqctl reset #rabbitmqctl join_cluster rabbit@node1 # rabbit@node1里面的node1是主节点的主机名,注意修改 #rabbitmqctl start_app
注意:若是三台主机的防火墙必须开启,那么在执行这几个步骤以前就要确认主机之间的1567二、567二、1567四、4369和25672端口是否互通,不然这几个步骤会失败,报错找不到主节点
六、在node2和node3上配置好以后,再在主节点node1上面查看状态,出现下面的状态就是已经好了
[root@node1 rabbitmq]# rabbitmqctl cluster_status Cluster status of node rabbit@node1 [{nodes,[{disc,[rabbit@node1,rabbit@node2,rabbit@node3]}]}, {running_nodes,[rabbit@node3,rabbit@node2,rabbit@node1]}, {cluster_name,<<"rabbit@node1">>}, {partitions,[]}, {alarms,[{rabbit@node3,[]},{rabbit@node2,[]},{rabbit@node1,[]}]}]
七、页码访问检测,访问主节点页面http://10.0.0.101:15672/#/ 可以在界面看到三个节点
到这里,Rabbitmq集群就部署好啦
单机版Rabbitmq部署:http://www.javashuo.com/article/p-tfcqshgq-bv.html