Rabbitmq集群部署

集群主机信息: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集群就部署好啦

单机版Rabbitmq部署:http://www.javashuo.com/article/p-tfcqshgq-bv.html

相关文章
相关标签/搜索