Rabbitmq集群部署

集群主机信息:

主机IP 主机名
10.0.0.101(作为主节点) node1
10.0.0.102 node2
10.0.0.103 node3

1、按照上一篇博客《单机版Rabbitmq部署 》,里面的安装步骤在三台虚拟机上都同样操作,先安装好单机版rabbitmq

2、三台机器的/etc/hosts都加入下面的内容:
10.0.0.101 node1
10.0.0.102 node2
10.0.0.103 node2

3、停止掉三台的服务,修改两台备节点node2和node3机器上的rabbitmq的cookie文件内容,改成和node1一样的内容:

1)修改从节点node2上面 .erlang.cookie 文件权限

[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节点也相同操作

3)然后分别查看主节点node1和从节点node2和node3上面.erlang.cookie文件的内容,已经变成了一样

[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文件权限

[root@node2 ~]#chmod 400 /var/lib/rabbitmq/.erlang.cookie     #一定要改成400再启动,否则启动的时候会报错的!!!)
[root@node3 ~]#chmod 400 /var/lib/rabbitmq/.erlang.cookie

4、重新启动两个从节点服务:
node1主节点不需要重启。
万一主节点node1需要重启,启动方式也和原来的方式一样,因为cookie文件没有变化,并且需要访问、登录

[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.

5、配置三台服务器的主从集群——node1作为主节点,那么在node2和node3上面都执行下面的命令:

#rabbitmqctl stop_app 
#rabbitmqctl reset 
#rabbitmqctl join_cluster rabbit@node1   # rabbit@node1里面的node1是主节点的主机名,注意修改
#rabbitmqctl start_app

注意:如果三台主机的防火墙必须开启,那么在执行这几个步骤之前就要确认主机之间的15672、5672、15674、4369和25672端口是否互通,否则这几个步骤会失败,报错找不到主节点

6、在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,[]}]}]

7、页码访问检测,访问主节点页面http://10.0.0.101:15672/#/ 能够在界面看到三个节点
Rabbitmq集群部署

到这里,Rabbitmq集群就部署好啦

单机版Rabbitmq部署:http://blog.51cto.com/10950710/2135676

猜你喜欢

转载自blog.51cto.com/10950710/2135717