rabbitmq镜像集群搭建
用到的ip地址
| ip地址 | 端口 |
|---|---|
| 192.168.101.65(主) | 15672 |
| 192.168.101.75 | 15672 |
| 192.168.101.85 | 15672 |
安装erlang和rabbitmq
安装
安装三个包
yum install esl-erlang_23.0-1_centos_7_amd64.rpm -y
yum install esl-erlang-compat-18.1-1.noarch.rpm -y
rpm -ivh rabbitmq-server-3.8.9-1.el7.noarch.rpm
启动rabbitmq和web插件
rabbitmq启动失败
[root@rabbitmq01 rabbitmq]# journalctl -xe
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: {{shutdown,
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: 14:02:03.632 [error] {failed_to_start_child,auth,
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: 14:02:03.632 [error] {"Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces",
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: {failed_to_start_child,auth,
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: {"Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces",
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: [{auth,init_cookie,0,[{file,"auth.erl"},{line,290}]},
rabbitmq没有读取.erlang.cookie的权限,修改权限所有者
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
配置镜像集群
修改映射文件
vi /etc/hosts
添加
192.168.101.65 rabbitmq01
192.168.101.75 rabbitmq02
192.168.101.85 rabbitmq03
重启网络服务
service network restart
修改主机名(不要在集群启动后再去修改,会让集群节点名称是根据主机名来的,中途改掉会报错)
hostnamectl set-hostname new_hostname(rabbitmq01/0/03)
同步 rabbitmq的cookie 文件.erlang.cookie (隐藏文件,使用 ls -all 显示)
scp /var/lib/rabbitmq/.erlang.cookie 192.168.101.75:/var/lib/rabbitmq
scp /var/lib/rabbitmq/.erlang.cookie 192.168.101.85:/var/lib/rabbitmq
75和85重启rabbitmq-server
systemctl restart rabbitmq-server
75和85加入集群
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq01
rabbitmqctl start_app


如果中途在主节点删过从节点,但是从节点没有重置,又再次想加入主节点,会报下面的错
[root@rabbitlocalhost miaoruntu]# rabbitmqctl join_cluster rabbit@rabbitmq01
Clustering node rabbit@rabbitlocalhost with rabbit@rabbitmq01
Error:
{:inconsistent_cluster, 'Node rabbit@rabbitmq01 thinks it's clustered with node rabbit@rabbitlocalhost, but rabbit@rabbitlocalhost disagrees'}
在从节点重置,再重新加入主节点
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq01
rabbitmqctl start_app
添加用户
rabbitmqctl add_user supeizhi 123
rabbitmqctl set_user_tags supeizhi administrator
rabbitmqctl set_permissions -p "/" supeizhi ".*" ".*" ".*"
设置镜像策略
pattern:“^queue_” 表示对队列名称以“queue_”开头的所有队列镜像,而"^"表示匹配所有的队列
definition:镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode
ha-mode:高可用模式,有效值为 all/exactly/nodes,策略模式为 all(复制到所有节点,包含新增节点)

创建队列

点击testQueue发送消息

后面蓝色的+2表示有两个消息节点,total1表示消息发送成功

将节点01停掉
rabbitmqctl stop_app
后面蓝色变成+1没有了

将节点03停掉,后面没有从节点了


启动01和03节点(鼠标过去会显示节点未同步)

同步队列
rabbitmqctl sync_queue testQueue


变回蓝色

相关文章:
rabbitmq镜像集群搭建
用到的ip地址 ip地址端口192.168.101.65(主)15672192.168.101.7515672192.168.101.8515672 安装erlang和rabbitmq 安装 安装三个包 yum install esl-erlang_23.0-1_centos_7_amd64.rpm -y yum install esl-erlang-compat-18.1-1.noarch.rpm -y rpm -…...
《c++并发编程实战》 笔记
《c并发编程实战》 笔记 1、你好,C的并发世界为什么要使用并发 第2章 线程管理2.1.1 启动线程2.2 向线程函数传递参数2.5 识别线程 第3章 线程间共享数据3.2.1 C中使用互斥量避免死锁的进阶指导保护共享数据的替代设施 第4章 同步并发操作4.1 等待一个事件或其他条件…...
57qi5rW35LqRZUhS pc.mob SQL注入漏洞复现
0x01 产品简介 57qi5rW35LqRZUhS是大中型企业广泛采用人力资源管理系统。某云是国内顶尖的HR软件供应商,是新一代eHR系统的领导者。 0x02 漏洞概述 57qi5rW35LqRZUhS pc.mob 接口存在SQL注入漏洞,未经身份验证的远程攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息(例…...
微信小程序--27(自定义组件4)
一、父子组件之间通信的3种方式 1、属性绑定 用于父组件向子组件的只当属性设置数据,但只能设置JSON兼容的数据 2、事件绑定 用于子组件向父组件传递数据,可以传递任意数据 3、获取组件实例 父组件还可以通过this.select Component()获取子组件的实…...
Linux | Linux进程万字全解:内核原理、进程状态转换、优先级调度策略与环境变量
目录 1、从计算机组成原理到冯诺依曼架构 计算机系统的组成 冯诺依曼体系 思考:为什么计算机不能直接设计为 输入设备-CPU运算-输出设备 的结构? 2、操作系统(Operator System) 概念 设计OS的目的 描述和组织被管理对象 3、进程 基本概念 进程id和父进程…...
VBA技术资料MF184:图片导入Word添加说明文字设置格式
我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…...
在函数设计中应用单一职责原则:函数分解与职责分离
在函数设计中应用单一职责原则:函数分解与职责分离 引言 单一职责原则(Single Responsibility Principle, SRP)是面向对象设计原则中的核心原则之一,强调一个类或函数应该只有一个责任或理由去改变。在函数设计中,应…...
多线程锁机制面试
目录 乐观锁的底层原理 ReentrantLock的实现原理 读写锁 ReentrantReadWriteLock synchronized 底层原理 Lock和synchronized的区别 乐观锁的底层原理 版本号机制 在数据库表中添加一个版本号字段(如 version),每次更新数据时都会将版本号…...
《SQL 中计算地理坐标两点间距离的魔法》
在当今数字化的世界中,地理数据的处理和分析变得越来越重要。当我们面对一个包含地理坐标数据的表时,经常会遇到需要计算两点之间距离的需求。无论是在物流配送路线规划、地理信息系统应用,还是在基于位置的服务开发中,准确计算两…...
微服务可用性设计
一、隔离 对系统或资源进行分割,实现当系统发生故障时能限定传播范围和影响范围。进一步的,通过隔离能够降低系统之间得耦合度,使得系统更容易维护和扩展。某些业务场景下合理使用隔离技巧也能提高整个业务的性能。我理解隔离本质就是一种解…...
【扒代码】dave readme文档翻译
jerpelhan/DAVE (github.com) 摘要 低样本计数器估算选定类别对象的数量,即使在图像中只有少量或没有标注样本的情况下。目前最先进的技术通过对象位置密度图的总和来估算总数量,但这种方法无法提供单个对象的位置和大小,这对于许多应用来说…...
c语言---文件
这一节我准备分三个部分来带领大家了解文件 ——一、有关文件的基础知识 ————二、文件的简单操作 ————————三、文件结束的判定 ————————————四、文件缓冲区 一、文件的基础知识: 首先在了解文件之前,我们需要了解C/C程序内存…...
Windows系统下Go安装与使用
step1: 下载go语言SDK 下载地址:https://go.dev/dl/ 下载后选择合适位置安装即可,我选择D盘 在安装完成后,可以通过go env 命令检测是否安装成功。在“命令提示符”界面输入“go env”命令,如果显示如下类似结果则说明…...
day24-测试之接口测试基础
目录 一、接口的定义 二、接口的优点 三、API接口 四、接口测试流程 五、网络基础概念 六、HTTP和RURL 七、get和post请求 八、数据格式 九、状态码 十、restful风格 十一、接口工具 一、接口的定义 程序之间协作所要遵循的一套规范、标准 二、接口的优点 2.1.责任…...
TSN 交换机
TSN(Time-Sensitive Networking)交换机是一种支持时间敏感网络协议的网络交换设备,用于在以太网网络中实现低延迟、高确定性的数据传输。TSN 是一组 IEEE 802 标准的集合,旨在通过标准化的方式,将传统的以太网扩展到需…...
针对thinkphp站点的漏洞挖掘和经验分享
0x1 前言 浅谈 目前在学习和研究thinkphp相关漏洞的打法,然后最近对于thinkphp资产的收集方面有了一个简单的认识,然后写一篇新手看的thinkphp相关的漏洞收集和挖掘的文章来分享下。然后后面是给师傅们分享下后台文件上传,然后直接打一个ge…...
MySQL数据库入门,pycharm连接数据库—详细讲解
一.安装MySQL 1.常用MySQL5.7,首先安装MySQL, (一) (二) (三) (四) (五) 2.配置环境变量 打开MySQL安装路径,在其中找到…...
.bat文件快速运行vue项目
如何使用bat文件快速运行vue项目? 新建个文件,改名为serve.bat。 在文件中写入以下内容: # cd 项目路径 cd D:\projects\xxx npm run serve pausecd 项目所在的路径 npm run dev/serve ,取决于项目的启动方法,打…...
数据结构(邓俊辉)学习笔记】优先级队列 07——堆排序
1.算法 作为完全二叉堆的一个应用,这节来介绍堆排序算法。 是的,谈到优先级队列,我们很自然地就会联想到排序。因为就其功能而言,包括完全二叉堆在内的任何一种优先级队列都天生地具有选取功能,也就是选取其中的最大…...
npm install pnpm -g 报错的解决方法
npm install pnpm -g 报错的解决方法 npm error code ETIMEDOUT npm error errno ETIMEDOUT npm error network request to https://registry.npmjs.org/pnpm failed, reason: npm error network This is a problem related to network connectivity. npm error network In mo…...
AI编程助手规则库实战:从通用到专用的效率跃迁
1. 项目概述:当你的光标有了“规矩”最近在逛GitHub的时候,发现了一个挺有意思的项目,叫“awesome-cursorrules-zh”。光看名字,你可能会有点懵,“Cursor”是那个AI编程工具,“rules”是规则,那…...
终极ASCII流程图绘制指南:5分钟从零开始掌握专业文本图表制作
终极ASCII流程图绘制指南:5分钟从零开始掌握专业文本图表制作 【免费下载链接】asciiflow ASCIIFlow 项目地址: https://gitcode.com/gh_mirrors/as/asciiflow ASCIIFlow是一款完全免费、无需安装的在线ASCII流程图绘制工具,让任何人都能用简单的…...
【Midjourney v8审美跃迁指南】:20年AI视觉专家亲授8大不可逆的艺术判断法则
更多请点击: https://intelliparadigm.com 第一章:Midjourney v8审美跃迁的本质动因 Midjourney v8 的审美跃迁并非单纯模型参数堆叠的结果,而是多维度协同演化的系统性突破。其核心动因植根于训练数据范式的重构、隐空间解耦能力的增强&am…...
干货版《算法导论》04:渐近复杂度与序列接口实战
干货版《算法导论》04:渐近复杂度与序列接口实战Bilibili 同步视频✨ 开篇引言一、为什么要做「算法问题精讲」?二、渐近复杂度:函数增长排序的终极法则1. 核心增长关系(必背!)2. 解题通用方法3. 阶乘与二项…...
AI文档智能审查:从NLP原理到企业级部署实战
1. 项目概述:文档的“哨兵”与智能守护者在信息爆炸的时代,我们每天都要与海量的文档打交道——从一份关键的商业合同、一份严谨的学术论文,到一份复杂的项目需求说明书。这些文档不仅是信息的载体,更是决策的依据、合作的基石。然…...
设计工程化实践:将设计思维转化为开发者技能的工具探索
1. 项目概述:当设计思维遇上代码技能最近在GitHub上看到一个挺有意思的项目,叫Arthurescc/design-fusion.skill。光看这个名字,就让我这个在设计和开发交叉领域摸爬滚打了十来年的老手眼前一亮。“Design Fusion”直译是“设计融合”…...
物联网技术如何重塑智能电网的底层架构
1. 物联网技术重塑智能电网的底层逻辑2003年美加大停电事故导致5000万人陷入黑暗,这场灾难直接催生了现代智能电网的诞生。如今,当我们谈论智能电网时,本质上是在讨论一个由物联网(IoT)技术重构的能源神经系统。这个系统通过海量智能终端实时…...
深度学习遥感图像语义分割:从数据准备到模型优化
深度学习遥感图像语义分割:从数据准备到模型优化 摘要:随着遥感传感器技术的飞速发展,海量高分辨率遥感图像数据的获取越来越便捷,如何高效、精准地从这些数据中提取地物信息成为遥感解译领域的核心挑战。深度学习凭借其强大的特征自主学习能力,尤其是卷积神经网络(CNN)…...
从ValueError到精准评估:解决超分辨率重建中SSIM/PSNR计算的三大实战难题
1. 从报错到理解:新版skimage的SSIM/PSNR计算函数变迁 第一次用skimage计算超分辨率重建指标时,我就被当头一棒——熟悉的compare_ssim和compare_psnr居然报"ImportError"。这就像你习惯去小区东门拿快递,突然发现快递柜搬到了西门…...
完整指南:如何用3D打印技术构建高精度六轴机械臂Faze4
完整指南:如何用3D打印技术构建高精度六轴机械臂Faze4 【免费下载链接】Faze4-Robotic-arm All files for 6 axis robot arm with cycloidal gearboxes . 项目地址: https://gitcode.com/gh_mirrors/fa/Faze4-Robotic-arm Faze4是一个完全开源的6轴工业级机械…...
