Rabbitmq集群部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 文件权限

[[email protected] ~]# cd /var/lib/rabbitmq/     #注意,.erlang.cookie一般情况下是在这个位置,但是在部署有一套特殊环境的时候遇到.erlang.cookie是在/root下面,有一些机器在erlang的安装目录下面还有一个.erlang.cookie文件。因此在这里找不到文件的时候,find命令搜索一下
[[email protected] 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文件的内容,已经变成了一样

[[email protected] ~]# cat /var/lib/rabbitmq/.erlang.cookie     
ABBMUFNDBMXKVEFSPVAY

[[email protected] ~]# cat /var/lib/rabbitmq/.erlang.cookie
ABBMUFNDBMXKVEFSPVAY

[[email protected] ~]# cat /var/lib/rabbitmq/.erlang.cookie
ABBMUFNDBMXKVEFSPVAY

然后修改从节点node2和node3cookie文件权限

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

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

[[email protected] 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节点:

[[email protected] rabbitmq]#  rabbitmq-server -detached
Warning: PID file not written; -detached was passed.

启动node3节点:

[[email protected] rabbitmq]#  rabbitmq-server -detached
Warning: PID file not written; -detached was passed.

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

#rabbitmqctl stop_app 
#rabbitmqctl reset 
#rabbitmqctl join_cluster [email protected]   # [email protected]里面的node1是主节点的主机名,注意修改
#rabbitmqctl start_app

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

6、在node2和node3上配置好之后,再在主节点node1上面查看状态,出现下面的状态就是已经好了

[[email protected] rabbitmq]# rabbitmqctl cluster_status
Cluster status of node [email protected]
[{nodes,[{disc,[[email protected],[email protected],[email protected]]}]},
 {running_nodes,[[email protected],[email protected],[email protected]]},
 {cluster_name,<<"[email protected]">>},
 {partitions,[]},
 {alarms,[{[email protected],[]},{[email protected],[]},{[email protected],[]}]}]

7、页码访问检测,访问主节点页面http://10.0.0.101:15672/#/ 能够在界面看到三个节点
技术分享图片

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

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

以上是关于Rabbitmq集群部署的主要内容,如果未能解决你的问题,请参考以下文章

rabbitmq集群部署

rabbitmq集群部署

rabbitmq集群部署

rabbitmq单机和集群部署

rabbitmq单机和集群部署

rabbitmq单机和集群部署