rabbitmq 镜像集群部署
作者:互联网
环境
centos7,安装基础的包,做好时间同步,关闭防火墙以及selinux,以及主机名解析
192.168.1.62 data4
192.168.1.63 data5
192.168.1.64 data6
版本 rabbitmq-server-3.8.19
安装rabbitmq rpm 源
[root@data4 ~]# curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
安装erlang 源
[root@data4 ~]# curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
[root@data4 ~]# yum install rabbitmq-server
配置启动文件
[root@data4 ~]# mkdir -pv /data/rabbitmq/{data,logs}
[root@data4 ~]# chown rabbitmq:rabbitmq /data/rabbitmq/ -R
[root@data4 ~]# cd /etc/rabbitmq/
```
默认的实例文件,下载或者复制出来,创建 rabbitmq-server.conf
https://github.com/rabbitmq/rabbitmq-server/blob/master/deps/rabbit/docs/rabbitmq-server.service.example
[root@data4 ~]# vim rabbitmq-env.conf
```
RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/logs
RABBITMQ_NODENAME=rabbit@data4
#RABBITMQ_NODE_IP_ADDRESS
#RABBITMQ_NODE_PORT
```
scp 传输到其它两个节点一样的配置,唯一要注意这个RABBITMQ_NODENAME=rabbit@data4,改成对应主机。
```
[root@data4 ~]# systemctl enable --now rabbitmq-server
[root@data4 ~]# rabbitmq-plugins enable rabbitmq_management
[root@data4 ~]# systemctl restart rabbitmq-server
[root@data4 ~]# chmod 400 /var/lib/rabbitmq/.erlang.cookie
[root@data4 ~]# scp -a /var/lib/rabbitmq/.erlang.cookie root@data5:/var/lib/rabbitmq/
[root@data4 ~]# scp -a /var/lib/rabbitmq/.erlang.cookie root@data6:/var/lib/rabbitmq/
```
将data4作为集群主节点,在节点data5和节点data6上⾯面分别执⾏行行如下命令,以加⼊集群中(--ram 指定内存节点类型,--disc指定磁盘节点类型)
```
[root@data5 ~]# rabbitmqctl stop_app
[root@data5 ~]# rabbitmqctl reset
[root@data5 ~]# rabbitmqctl join_cluster rabbit@data4 -- 磁盘节点
[root@data6 ~]# rabbitmqctl stop_app
[root@data6 ~]# rabbitmqctl reset
[root@data6 ~]# rabbitmqctl join_cluster rabbit@data4 -- 磁盘节点
```
查看集群状态
```
[root@data4 ~]# rabbitmqctl cluster_status
[root@data5 ~]# rabbitmqctl cluster_status
[root@data6 ~]# rabbitmqctl cluster_status
```
设置管理账号
```
[root@data4 ~]# rabbitmqctl add_user admin password
[root@data4 ~]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
[root@data4 ~]# rabbitmqctl set_user_tags admin administrator
```
设置项目账号
aaa 项目账号
```
[root@data4 ~]# rabbitmqctl add_vhost aaa_project
[root@data4 ~]# rabbitmqctl add_user aaa password
[root@data4 ~]# rabbitmqctl set_user_tags aaa management
[root@data4 ~]# rabbitmqctl set_permissions -p aaa_project aaa '.*' '.*' '.*'
```
bbb 项目账号
```
[root@data4 ~]# rabbitmqctl add_vhost bbb_project
[root@data4 ~]# rabbitmqctl add_user bbb password
[root@data4 ~]# rabbitmqctl set_user_tags bbb management
[root@data4 ~]# rabbitmqctl set_permissions -p bbb_project bbb '.*' '.*' '.*'
```
关于权限控制可以参考这里 https://wangying.sinaapp.com/archives/2277
删除 guest 账号
```
[root@data4 ~]# rabbitmqctl delete_user guest
```
设置集群名称(可选)
```
[root@data4 ~]# rabbitmqctl set_cluster_name 集群名称
```
设置镜像队列列策略略(任意⼀一个节点操作)
```
[root@data4 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
```
在data5模拟宕机情况
```
[root@data5 ~]# rabbitmqctl stop_app
```
在主节点,强制移除节点
```
[root@data4 ~]# rabbitmqctl forget_cluster_node rabbit@data5
```
主动移除某个节点,在需要移除的某个节点
```
[root@data6 ~]# rabbitmqctl stop_app
[root@data6 ~]# rabbitmqctl reset
```
标签:rabbitmq,rabbitmqctl,集群,data4,data5,镜像,root,节点 来源: https://www.cnblogs.com/xietaiyang/p/14977940.html