使用docker部署rabbitmq集群

news2025/1/10 18:20:19

       

部署环境准备

192.168.81.128   rabbitmq-1

192.168.81.129   rabbitmq-2

192.168.81.130   rabbitmq-3

首先创建挂载目录(三个节点都创建)

systemctl stop  firewalld  && setenforce 0   关闭防火墙和selinux

mkdir /data/rabbitmq -p

cd /data/rabbitmq/ && vim hosts     编写hosts文件

192.168.81.128   rabbitmq-1

192.168.81.129   rabbitmq-2

192.168.81.130   rabbitmq-3

节点1启动

docker run -itd --net host --name rabbitmq-1 --hostname rabbitmq-1  --log-opt max-size=30m --log-opt max-file=3 -v /data/rabbitmq:/var/lib/rabbitmq  -v /data/rabbitmq/hosts:/etc/hosts -e RABBITMQ_DEFAULT_USER=admin   -e RABBITMQ_DEFAULT_PASS=admin -e RABBITMQ_ERLANG_COOKIE='zjiosjdiojafodja'  docker.io/library/rabbitmq:3.11.28-management

-d`: 表示以分离模式运行容器。  

--net host`: 使用宿主机网络模式,容器将与宿主机共享网络命名空间。  

--name rabbitmq-1`: 为容器指定名称为 `rabbitmq-1`。

--hostname:    指定容器主机名为 `rabbitmq-1`。

--log-opt max-size=30m`: 设置日志文件的最大大小为 30MB。  

--log-opt max-file=3`: 设置存储的日志文件数量上限为 3 个。  

-v /data/rabbitmq:/var/lib/rabbitmq:z`: 将宿主机上的 `/data/rabbitmq` 目录挂载到容器内的 `/var/lib/rabbitmq` 目录。

-v /data/rabbitmq/hosts:/etc/hosts`: 将宿主机上的 `/data/rabbitmq/hosts` 文件挂载到容器内的 `/etc/hosts` 文件。

-e RABBITMQ_DEFAULT_USER=admin`: 设置 RabbitMQ 默认用户的用户名为 `admin`。  

-e RABBITMQ_DEFAULT_PASS=admin`: 设置 RabbitMQ 默认用户的密码为 `admin`。    

-e RABBITMQ_ERLANG_COOKIE='zjiosjdiojafodja' `: 设置Erlang Cookie 的值为在 RabbitMQ 集群中用于节点之间的身份验证和通信。

节点1启动后把.erlang.cookie文件发送到2/3节点,用于节点之间的身份验证和通信。

scp /data/rabbitmq/.erlang.cookie 192.168.81.129:/data/rabbitmq/

scp /data/rabbitmq/.erlang.cookie 192.168.81.130:/data/rabbitmq/

节点2启动

docker run -itd --net host --name rabbitmq-2 --hostname rabbitmq-1  --log-opt max-size=30m --log-opt max-file=3 -v /data/rabbitmq:/var/lib/rabbitmq  -v /data/rabbitmq/hosts:/etc/hosts -e RABBITMQ_DEFAULT_USER=admin   -e RABBITMQ_DEFAULT_PASS=admin-e RABBITMQ_ERLANG_COOKIE='zjiosjdiojafodja'  docker.io/library/rabbitmq:3.11.28-management

节点3启动

docker run -itd --net host --name rabbitmq-3 --hostname rabbitmq-3  --log-opt max-size=30m --log-opt max-file=3 -v /data/rabbitmq:/var/lib/rabbitmq  -v /data/rabbitmq/hosts:/etc/hosts -e RABBITMQ_DEFAULT_USER=admin   -e RABBITMQ_DEFAULT_PASS=admin -e RABBITMQ_ERLANG_COOKIE='zjiosjdiojafodja'  docker.io/library/rabbitmq:3.11.28-management

在 RabbitMQ 集群中节点可以分为磁盘节点和内存节点

磁盘节点:

磁盘节点存储队列的持久化消息和元数据。

当队列中的消息过多时,磁盘节点能够有效地处理消息的持久化和存储,因为它们依赖于磁盘而不是内存。

磁盘节点适用于需要长时间保留大量消息的情况,以及对消息持久性要求较高的场景。

内存节点:

内存节点主要存储队列的非持久化消息和元数据。

内存节点使用RAM存储消息,因此对于那些需要快速响应时间和低延迟的应用场景非常有用。

内存节点适用于对性能要求较高,但不需要持久化所有消息的场景。可以分为磁盘节点和内存节点

可以按照需求来配置节点加入的方式

rabbitmqctl join_cluster rabbit@rabbitmq-1   这样是以磁盘节点的方式加入

rabbitmqctl join_cluster --ram rabbit@rabbitmq-1 这样是以内存节点的方式加入

启动节点2加入集群

docker exec -it rabbitmq-2 /bin/bash

rabbitmqctl stop_app   停止rabbitmq

rabbitmqctl reset 重置节点状态

rabbitmqctl join_cluster rabbit@rabbitmq-1   加入集群

rabbitmqctl      命令行工具

join_cluster 节点加入集群的命令

rabbit@rabbitmq-1   集群中已存在的节点   rabbit是节点名称 rabbitmq-1 主机名

rabbitmqctl start_app 启动服务

启动节点3加入集群

docker exec -it rabbitmq-3 /bin/bash

rabbitmqctl stop_app   停止rabbitmq

rabbitmqctl reset 重置节点状态

rabbitmqctl join_cluster rabbit@rabbitmq-1   加入集群

rabbitmqctl join_cluster --ram rabbit@rabbitmq-1 节点3可以尝试用内存节点加入

rabbitmqctl start_app 启动服务

来到节点1查看集群状态

docker exec -it rabbitmq-1 /bin/bash

rabbitmqctl cluster_status   查看集群状态

访问web页面查看集群状态

192.168.81.128:15672    用户名admin密码admin

可以看到三个节点都是正常的,到这集群就部署好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2040604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

加和分数、训练、测试

一、加和所有alignment的分数 1、路线图中 2、l_i只与token有关,有一个专门训练的网络;h_i变化只与null有关 3、distribution生成的概率不受路径影响,只要到达位置概率就是一样的 4、计算alignment分数的总和 (1)αi…

Word转html并移植到web项目

1.打开对应word文件 建议使用web视图查看文档 这样可以提前预览转转成html样式 2.如果有图片修改图片大小及格式 在web视图下,把图片调制适当大小,不然导出的html可能图片较小 3.点击另存为 4.选择网页格式,同时将后缀修改为html(默认是h…

从springBoot框架服务器上下载文件 自定义一个启动器

在springboot框架中下载服务器存储的图片: 1)springboot默认访问放行的目录只有static,在static目录下存放图片资源 2)编译后的static目录中有一个1.png 2.5)编写控制器: Controller //RequestMapping("/upload&q…

如何在 Linux 内核中高效使用链表:原理与实践

文章目录 前言一、Linux内核链表源码分析1.链表的初始化1. 静态初始化宏 LIST_HEAD_INIT(name)宏 LIST_HEAD(name) 2. 动态初始化函数 INIT_LIST_HEAD(struct list_head *list) 对比总结2.链表的添加list_add 函数的定义函数参数内部实现__list_add 函数 list_add 的功能总结使…

Java Spring|day4.SpringCloud

SpringCloud 定义 springcloud是分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶。实现的功能有服务注册与发现,服务调用,服务熔断,负载均衡,服务降级,…

Excel公式合并同类项

Excel公式合并同类项 1、新建表,用公式引用要处理的数据,快速选中表格复制公式2、 合并同类项,复制数据,删除重复项3、 sumif()合并同类项4、vlookup()复制同类项 1、新建表,用公式引用要处理的数据,快速选…

docker数据卷:

docker数据卷: 容器和宿主机之间数据共享 容器和宿主机之间数据共享——————挂载卷————容器内的目录和宿主机的目录进行挂载,实现数据文件共享 容器的生命周期有限,一旦重启所有对容器内部文件数据的修改以及保存的数据都会被初始…

深入理解 iOS 中的 AutoLayout(二)

目录 前言 一、UIStackView自动布局 1.简单的UIStackView 2.嵌套的UIStackView 二、AutoLayout高级用法 1.以编程方式创建约束 1.布局锚点 1.主要特点 2.常见子类 1.NSLayoutXAxisAnchor 2.NSLayoutYAxisAnchor 3.NSLayoutDimension 3.常用方法 4.…

SQL server数据库备份和还原

新手小白都懂的sql server数据库备份和还原 一、备份 1.打开sql server数据库找到 2.展开找到对应的数据库文件 鼠标右击—任务–备份 3.复制名称 4.复制完点击添加 5.点击添加完之后再次点击查找路径 6.分别两个路径 原路径和新路径 (新路径是找到原路径新建了一…

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. 问题解决

问题描述 原来我的服务器docker服务运行正常,但在某次尝试用时, 根据系统的错误提示执行了snap install docker指令之后, 再执行docker ps命令则提示Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running…

Arm Linux 串口 open 标志引起的问题

一、测试环境 硬件&#xff1a;nuc980 开发版 系统&#xff1a;Linux 4.4 二、open 函数描述 函数 open 的介绍 头文件 #include <fcntl.h>原型 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>int open(const char *pathname,…

LabVIEW开发HVAC总成真空检测及监控系统

在HVAC&#xff08;Heating, Ventilation, and Air Conditioning&#xff0c;供暖、通风与空气调节&#xff09;总成制造过程中&#xff0c;真空检测是确保产品质量的重要环节。真空度是判断HVAC总成密封性能和气密性的关键指标&#xff0c;因此需要一个自动化、精准且可追溯的…

上海泌尿专家来黄山新晨医院义诊,解决患者前列腺等疑难疾病

为满足广大男性对自身健康的关爱、让男性患者不出远门&#xff0c;就能享受到高质量的上海男科诊疗服务&#xff0c;7月28日黄山新晨医院特邀请上海第四人民医院泌尿外科周铁主任团队到院&#xff0c;开展男科疾病义诊活动。 周铁主任为中华医学会泌尿外科分会男科学组委员&…

【docker系列】docker删除指定容器

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

超详细!!!electron-vite-vue开发桌面应用之Electron Forge打包项目(三)

云风网 云风笔记 云风知识库 electronforge可将前端静态页面打包成.exe、.deb和.rpm等&#xff0c;能适配各种平台 一、安装依赖 cd my-app npm install --save-dev electron-forge/cli npm exec --packageelectron-forge/cli -c "electron-forge import"安装后pack…

Prostgresql的Timescaledb插件/扩展部署

背景&#xff1a;研发需求&#xff0c;需要把docker部署得postgresql迁移到新的节点并要求再本地部署&#xff0c;提前查看数据库需要那些插件&#xff0c;并进行安装&#xff0c;docker部署的默认有插件。 版本对比&#xff1a;postgresql版本对应某个Timescaledb版本 我得p…

登录过程记录

过程&#xff1a; 未登录状态打开我的消息页-》调用后端接口查询登录状态->后端接口从cookie里拿lt,判断是否登录-》未登录&#xff0c;携带页面链接(我的消息)跳转passport【单点登录服务】 登录页-》输入验证码提交后-》验证成功-》根据用户信息生成票据-》携带票据和我的…

下载 MC Minecraft Launcher 我的世界 启动器下载

下载地址&#xff1a; https://mc-launcher.com/wp/minecraft/ 我们下期见&#xff0c;拜拜&#xff01;

超详细排序汇总--插入排序类,选择排序类,交换排序类,归并排序,非比较排序

博客中所有代码均在leetcode912. 排序数组中执行 &#xff08;一&#xff09;插入排序类 1、直接插入排序 1&#xff09;思路 当插入第i(i>1)个元素时&#xff0c;前面的array[0],array[1],…,array[i-1]已经排好序&#xff0c;此时用array[i]的排序码与array[i-1],array[…

“论软件体系结构的演化”写作框架,软考高级,系统架构设计师

论文真题 软件体系结构的演化是在构件开发过程中或软件开发完毕投入运行后&#xff0c;由于用户需求发生变化&#xff0c;就必须相应地修改原有软件体系结构&#xff0c;以满足新的变化了的软件需求的过程。体系结构的演化是一个复杂的、难以管理的问题。 请围绕“论软件体系…