Rabbitmq集群搭建(镜像集群)

搭建环境

主机 IP 主机名
MQ01 192.168.0.107 rabbitmq01
MQ02 192.168.0.86 rabbitmq02

安装MQ

下载MQ

wget wget https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.8.16-1.el7.noarch.rpm
wget https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.2.7-1.el7.x86_64.rpm

安装MQ

yum localinstall -y erlang-23.2.7-1.el7.x86_64.rpm
yum localinstall -y rabbitmq-server-3.8.16-1.el7.noarch.rpm

编写主配文件

touch /etc/rabbitmq/rabbitmq.conf
chow .rabbitmq /etc/rabbitmq/ -R
Vim /etc/rabbitmq/rabbitmq.conf
#禁止来宾访问
loopback_users.guest = false
#监听端口
listeners.tcp.default = 5672
#默认用户名和密码
default_pass = admin
default_user = admin
#WEB管理端端口
management.tcp.port = 15672
management.tcp.ip = 0.0.0.0
#WEB默认访问路径(建议不配置)
management.path_prefix=mq

修改数据,日志存储位置

mkdir /data/rabbitmq/{
    
    logs/data}
chown rabitmq:rabbitmq /data/rabbitmq -R
vim /etc/rabbitmq/rabbitmq-env.conf
#添加如下两行内容
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/logs 

启动MQ

systemctl stop firewalld
systemctl start rabbitmq-server

设置主机名连通

MQ01:

hostnamectl set-hostname rabbitmq01
bash
echo "192.168.0.86    rabbitmq02" >>/etc/hosts
echo "192.168.0.107   rabbitmq01" >>/etc/hosts
ping rabbitmq02

MQ02:

hostnamectl set-hostname rabbitmq02
bash
echo "192.168.0.86    rabbitmq02" >>/etc/hosts
echo "192.168.0.107   rabbitmq01" >>/etc/hosts
ping rabbitmq01

设置.erlang.cookie

MQ01:

echo "Weihu2023@" >/var/lib/rabbitmq/.erlang.cookie
systemctl restart rabbitmq-server

MQ02:

echo "Weihu2023@" >/var/lib/rabbitmq/.erlang.cookie
systemctl restart rabbitmq-server

搭建集群

节点加入集群

MQ02:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq01
rabbitmqctl start_app

默认情况下,RabbitMQ 启动后是磁盘节点,如果想以内存节点方式加入,可以加 --ram 参数。
如果想要修改节点类型,可以使用命令:

rabbitmqctl change_cluster_node_type disc(ram)

注意,由于 RAM 节点仅将内部数据库表存储在内存中,因此在内存节点启动时必须从其他节点同步这些数据,所以一个集群必须至少包含一个磁盘节点。

设置集群名称

rabbitmqctl set_cluster_name rabbitmq_test_cluster

此时普通集群已搭建完成,如需设置镜像集群需继续执行如下操作

设置镜像集群

  • 命令行设置
rabbitmqctl set_policy "queue_policy_test" "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

在这里插入图片描述
查看规则

 rabbitmqctl list_policies

在这里插入图片描述

  • 管理界面设置
    1.创建规则
    在这里插入图片描述
    在这里插入图片描述
各参数含义如下:
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:          exactly 模式需要用到的参数,
ha-sync-mode:       进行队列中消息的同步方式,有效值为 automatic 和 manual。
priority 为可选参数,表示 policy 的优先级。

2.查看规则
在这里插入图片描述
3.验证规则(在随机一个节点上创建一个queue,查看是否同步至两个节点)

  • 创建镜像策略前
    在这里插入图片描述
    在这里插入图片描述

  • 创建镜像策略后
    在这里插入图片描述
    在这里插入图片描述

集群常用命令

查看集群状态

rabbitmqctl cluster_status

猜你喜欢

转载自blog.csdn.net/weixin_49566876/article/details/130324451