rabbitmq集群部署
环境:
IP地址 主机名 操作系统 防火墙和SELinux 用途
192.168.100.143 mq01 CentOS7.4(64位) 关闭 磁盘节点
192.168.100.144 mq02 CentOS7.4(64位) 关闭 内存节点
192.168.100.145 mq03 CentOS7.4(64位) 关闭 内存节点
注意,这里三台服务器都连接上互联网,另外RabbitMQ集群节点必须在同一网段里,如果是跨广域网,效果会变差。
RabbitMQ普通集群配置
1. 配置hosts文件
更改三台MQ节点的计算机名分别为mq01、mq02 和mq03,然后修改hosts配置文件
vim /etc/hostname //其他两台相同
mq01.localdomain
vi /etc/hosts
192.168.100.143 mq01 //注意不能带.注意-主机名称也要更改
192.168.100.144 mq02
192.168.100.145 mq03
2.三个节点配置yum源,安装rabbitmq软件
yum install -y epel-release
yum install -y rabbitmq-server
3.拷贝erlang.cookie
Rabbitmq的集群是依附于erlang的集群来工作的,所以必须先构建起erlang的集群景象。Erlang的集群中各节点是经由过程一个magic cookie来实现的,这个cookie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的权限。所以必须保证各节点cookie一致,不然节点之间就无法通信。
[root@mq01 ~]# cat /var/lib/rabbitmq/.erlang.cookie
XAHPZVPYUQDWWJIOHUPQ
用scp的方式将mq01节点的.erlang.cookie的值复制到其他两个节点中。
scp /var/lib/rabbitmq/.erlang.cookie root@192.168.100.144:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@192.168.100.145:/var/lib/rabbitmq/.erlang.cookie
4.分别查看三个节点并添加管理服务,最后启动rabbitmq服务
RabbitMQ提供了一个非常友好的图形化监控页面插件(rabbitmq_management),让我们可以一目了然看见Rabbit的状态或集群状态。
/usr/lib/rabbitmq/bin/rabbitmq-plugins list //查看插件安装情况
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management //启用rabbitmq_management服务
service rabbitmq-server start
5.查看监听端口(插件监控的端口是15672)
6.将mq02、mq03作为内存节点加入mq01节点集群中
在mq02、mq03执行如下命令:
rabbitmqctl stop_app //停掉rabbit应用
rabbitmqctl join_cluster --ram rabbit@mq01 //加入到磁盘节点
rabbitmqctl start_app //启动rabbit应用
(1)默认rabbitmq启动后是磁盘节点,在这个cluster命令下,mq02和mq03是内存节点,mq01是磁盘节点。
(2)如果要使mq02、mq03都是磁盘节点,去掉–ram参数即可。
(3)如果想要更改节点类型,可以使用命令rabbitmqctl change_cluster_node_type disc(ram),前提是必须停掉rabbit应用
7.查看集群状态
本文出自:https://blog.51cto.com/u_11134648/2155934