CentOS 7.X部署RabbitMQ集群

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7.X部署RabbitMQ集群相关的知识,希望对你有一定的参考价值。

1、基础环境

主机名

IP地址

rabbitmq001

172.16.0.1

rabbitmq002

172.16.0.2

rabbitmq003

172.16.0.3

2、配置hosts(三台主机都配置)

vi /etc/hosts
172.16.0.1 rabbitmq001
172.16.0.2 rabbitmq002
172.16.0.3 rabbitmq003

3、安装rabbitmq(三台主机都配置)

yum -y install esl-erlang
yum -y install rabbitmq-server

4、配置集群

# 主机点执行,生成cookie(/var/lib/rabbitmq/.erlang.cookie)文件
systemctl enable --now rabbitmq-server.service

# 同步cookie文件到其他节点相同位置,非主节点执行
echo "$cookie" >/var/lib/rabbitmq/.erlang.cookie
chown -R rabbitmq:root /var/lib/rabbitmq/.erlang.cookie
chmod 600 /var/lib/rabbitmq/.erlang.cookie

# 所有节点执行
tee /etc/rabbitmq/rabbitmq-env.conf <<EOF
MNESIA_BASE=/data/rabbitmq/data
LOG_BASE=/data/rabbitmq/logs
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/log
EOF
mkdir -pv /data/rabbitmq/data,logs
chown -R rabbitmq.rabbitmq /data/rabbitmq/

# 重启主节点
systemctl restart rabbitmq-server.service

# 安装插件
cd /etc/rabbitmq
rabbitmq-plugins enable rabbitmq_shovel
rabbitmq-plugins enable rabbitmq_shovel_management
rabbitmq-plugins enable rabbitmq_federation_management
rabbitmq-plugins enable rabbitmq_management

# 查看已安装的插件
rabbitmq-plugins list

# 查看集群状态,主节点执行,获取cluster_name
rabbitmqctl cluster_status

# 其他节点执行,加入cluster_name
rabbitmqctl stop_app # 必须停用应用节点才能加入集群
rabbitmqctl join_cluster rabbit@vm-test-rabbitmq001
备注:rabbitmqctl stop_app # 仅停用应用
rabbitmqctl stop # 停用集群节点

# 启动所有从节点
rabbitmqctl start_app

# 主节点查看集群信息
rabbitmqctl cluster_status

5、配置管理员

配置管理员用户,仅在主节点执行
rabbitmqctl add_user admin admin123 # 用户名admin,密码admin123
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" #添加权限(使admin用户对虚拟主机“/” 具有所有权限)
rabbitmqctl set_user_tags admin administrator #修改用户角色(加入administrator用户组)

6、访问管理界面

http://localhost:15672

7、新增用户、vhosts信息

# addvhost.sh
#!/bin/bash
# Description: 变量为要加入的用户、密码以及虚拟主机名称
export vhost_name="test"
#export rabbitmq_password=$rabbitmq_password:-$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64 | tr -d "=+/" | dd bs=16 count=1 2>/dev/null)
export rabbitmq_password="test123!"
echo rabbitmq_password=$rabbitmq_password
rabbitmqctl add_vhost $vhost_name
rabbitmqctl add_user $vhost_name $rabbitmq_password
rabbitmqctl set_user_tags $vhost_name management
rabbitmqctl set_permissions --vhost $vhost_name $vhost_name ".*" ".*" ".*"
rabbitmqctl set_topic_permissions --vhost $vhost_name $vhost_name ".*" ".*" ".*"
rabbitmqctl set_policy -p $vhost_name $vhost_name ".*" "ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"
rabbitmqctl set_permissions --vhost $vhost_name admin ".*" ".*" ".*"
echo $vhost_name $rabbitmq_password >> user.list

8、策略说明

rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]
-p Vhost: 可选参数,针对指定vhost下的queue进行设置
Name: policy的名称
Pattern: queue的匹配模式(正则表达式)
Definition:镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode
ha-mode:指明镜像队列的模式,有效值为 all/exactly/nodes
all:表示在集群中所有的节点上进行镜像
exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定
nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定
ha-params:ha-mode模式需要用到的参数
ha-sync-mode:进行队列中消息的同步方式,有效值为automatic和manual
priority:可选参数,policy的优先级

centos内卸载centos

参考技术A 1、找到Xshell软件。
2、下面我们来卸载用yum安装的软件,命令:yumremove软件名字。
3、出现页面,就证明已经卸载完成了。

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

Kubernetes 部署 RabbitMQ 3.7.X 集群遇到的问题

k8s部署Rabbitmq集群

Centos6.9下RabbitMQ集群部署记录

Centos6.9下RabbitMQ集群部署记录

centos7部署rabbitmq集群

CentOS7.X环境下基于docker安装部署RabbitMQ集群