预见猿份
主题
首页面试题模拟面试SQL练习在线工具关于我们老苗一对一私教学员评价
实战项目
零基础学习路线项目前置基础创新WMS项目Java微服务框架与实战云岚到家项目闪聚支付项目学成在线项目青橙电商项目JVM原理与实战调优分布式事务专题Java高频面试题MySQL从入门到精通Java数据结构与算法Java 并发编程(JUC)实战课程老苗一对一私教学员评价
blog我的会员
  • RabbitMQ 消息中间件实战

    • 课程介绍
    • 第一章 RabbitMQ 快速入门
    • 第二章 RabbitMQ 高级特性与业务实战
    • 第三章 RabbitMQ 集群运维







----- 到底线了 -----

第三章 RabbitMQ 集群运维 ​

B站视频链接

3.MQ集群 ​

3.1 部署准备 ​

3.1.1 需求 ​

我们先来看普通模式集群,我们的计划部署3节点的mq集群:

集群架构图

集群中的节点标识默认都是:rabbit@[hostname],因此以上三个节点的名称分别为:

rabbit@mq1

rabbit@mq2

rabbit@mq3

3.1.2 获取cookie ​

RabbitMQ底层依赖于Erlang,而Erlang虚拟机就是一个面向分布式的语言,默认就支持集群模式。集群模式中的每个RabbitMQ 节点使用 cookie 来确定它们是否被允许相互通信。

要使两个节点能够通信,它们必须具有相同的共享密钥,称为Erlang cookie。cookie 只是一串最多 255 个字符的字母数字字符。

每个集群节点必须具有相同的 cookie。实例之间也需要它来相互通信。

我们先在之前启动的mq容器中获取一个cookie值,作为集群的cookie。执行下面的命令:

docker exec -it mq cat /var/lib/rabbitmq/.erlang.cookie

可以看到cookie值如下:

JavaScript
FXZMCVGLBIXZCDEMMVZQ
1

3.1.3 准备配置文件 ​

在/root/mq目录新建一个配置文件 rabbitmq.conf:

cd /root/mq

创建文件

touch rabbitmq.conf

文件内容如下:

JavaScript
loopback_users.guest = false
listeners.tcp.default = 5672
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
cluster_formation.classic_config.nodes.1 = rabbit@mq1
cluster_formation.classic_config.nodes.2 = rabbit@mq2
cluster_formation.classic_config.nodes.3 = rabbit@mq3
1
2
3
4
5
6

这段配置定义了一个包含三个节点的RabbitMQ集群,节点名称分别为 rabbit@mq1、rabbit@mq2 和 rabbit@mq3。这些节点将通过静态配置的方式互相发现对方,并形成集群。同时,配置禁用了guest用户通过环回接口登录,确保了基本的安全性,并且设置了默认的AMQP端口为5672。

配置项的具体含义:

  1. loopback_users.guest = false

这一行配置禁用了guest用户通过环回接口(localhost或127.0.0.1)登录RabbitMQ。默认情况下,guest用户只能通过环回接口登录。设置为 false 后,guest用户将不能通过环回接口登录,这有助于增强安全性。

  1. listeners.tcp.default = 5672

这一行配置指定了RabbitMQ监听的默认AMQP端口。在这里设置为5672,这是RabbitMQ的标准AMQP端口。

  1. cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config

这一行配置指定了集群节点之间如何发现彼此。rabbit_peer_discovery_classic_config 表示使用经典配置方式来发现集群中的其他节点。这是一种静态配置方式,需要显式地列出所有集群中的节点。

  1. cluster_formation.classic_config.nodes.1 = rabbit@mq1

这一行配置指定了集群中的第一个节点,即mq1节点,其节点名称为 rabbit@mq1。这里使用了Erlang节点命名约定,rabbit@ 后面跟着的是节点的主机名或别名。

  1. cluster_formation.classic_config.nodes.2 = rabbit@mq2

这一行配置指定了集群中的第二个节点,即mq2节点,其节点名称为 rabbit@mq2。

  1. cluster_formation.classic_config.nodes.3 = rabbit@mq3

这一行配置指定了集群中的第三个节点,即mq3节点,其节点名称为 rabbit@mq3。

再创建一个文件,记录cookie

cd /root/mq

创建cookie文件

touch .erlang.cookie

写入cookie

echo "CSFKFPKBBZGMXSGLDSYW" > .erlang.cookie

修改cookie文件的权限

chmod 600 .erlang.cookie

准备三个目录,mq1、mq2、mq3:

cd /root/mq

创建目录

mkdir mq1 mq2 mq3

然后拷贝rabbitmq.conf、cookie文件到mq1、mq2、mq3:

进入/root/mq

cd /root/mq

拷贝

JavaScript
cp rabbitmq.conf mq1
cp rabbitmq.conf mq2
cp rabbitmq.conf mq3
cp .erlang.cookie mq1
cp .erlang.cookie mq2
cp .erlang.cookie mq3
1
2
3
4
5
6
🔒会员方可继续阅读

试读到此结束,完整文档需开通会员,请花两分钟了解下我们

微信二维码微信扫码添加

添加老师微信开通会员:mrt_0607(备注:预见猿份)

探索者会员:59元,全站文档无障碍阅读,没有时间限制。

实践者会员:199元,全站文档+视频+源码资源,没有时间限制。

详细见会员权益

推广本站,也能免费获得会员 →









如果发现文档内容有错误或排版错乱,请及时联系站长老苗修改,不胜感激。联系我们
关于我们 | 隐私政策 | 豫ICP备2026003386号-4 | 豫公网安备41010202004008号
目录

本页无章节