十、RabbitMQ集群

news2024/11/24 11:23:05

一、clustering

1、 使用集群的原因

  • 单台RabbitMQ遇到内存崩溃、机器故障等情况会导致服务不可用
  • 单台RabbitMQ只能满足每秒1000条的消息吞吐量

2、搭建步骤

1、准备三台虚拟机
在这里插入图片描述
2、修改3台机器的主机名称 分别为node1、node2、node3
vi /etc/hostname
在这里插入图片描述
3、配置节点的hosts文件,让各个节点都能互相识别到对方
vim /etc/hosts
在这里插入图片描述

4、确保各个节点的cookie文件使用的是同一个值
在node1上执行远程操作命令:

scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/.erlang.cookie                    scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/.erlang.cookie

在这里插入图片描述
5、启动 RabbitMQ 服务,顺带启动 Erlang 虚拟机和 RbbitMQ 应用服务(在三台节点上分别执行以 下命令)

rabbitmq-server -detached

6、在节点 2 执行 => 节点2 加入节点1

rabbitmqctl stop_app 
(rabbitmqctl stop 会将 Erlang 虚拟机关闭,rabbitmqctl stop_app 只关闭 RabbitMQ服务) 
rabbitmqctl reset 
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app(只启动应用服务)

在这里插入图片描述

7、在节点3执行 =》 节点3 加入节点2

rabbitmqctl stop_app 
rabbitmqctl reset 
rabbitmqctl join_cluster rabbit@node2
rabbitmqctl start_app

在这里插入图片描述

8、查看集群状态

rabbitmqctl cluster_status

在这里插入图片描述

9、需要重新设置用户

创建账号 rabbitmqctl add_user admin 123
设置用户角色 rabbitmqctl set_user_tags admin administrator
设置用户权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

进入 http://192.168.56.11:15672/
在这里插入图片描述

10、(备注)解除RabbitMQ的集群状态

rabbitmqctl stop_app 
rabbitmqctl reset 
rabbitmqctl start_app 
rabbitmqctl cluster_status
rabbitmqctl forget_cluster_node rabbit@node2(node1 机器上执行)

二、镜像队列

1、 为什么要引入镜像队列

假设队列1处于node1节点上,当node1宕机时,所有发送消息给队列1以及从队列1消费消息的客户端全部不能使用

引入镜像队列(Mirror Queue)的机制,可以将队列镜像到集群中的其他Broker节点之上,如果集群中的一个节点失效了,队列能自动切换到镜像中的另一个节点上以保证服务的可用性

2、 镜像队列的搭建步骤

1、启动三台集群节点

2、随便找一个节点添加 policy
在这里插入图片描述

3、在node1上创建一个队列,发送一条消息,队列存在镜像队列

4、停掉 node1 节点,发现node3上的队列称为主队列,node2节点上存在其镜像队列

三、Haproxy + Keepalive实现高可用负载均衡

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

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

相关文章

【第三阶段】kotlin语言中的数字安全转换函数(String转Int)

字符串有整形相关的转换,尽量使用toIntOrNull()函数 fun main() {//String转Intvar num1"666"println(num1.toInt())//Double不能自动转换为Int,会崩溃,解决崩溃如下:toIntOrNull()如果转换失败会转为nullv…

ATF(TF-A) 威胁模型汇总

安全之安全(security)博客目录导读 目录计划如下,相关内容补充中,待完成后进行超链接,敬请期待,欢迎您的关注 1、通用威胁模型 2、SPMC威胁模型 3、EL3 SPMC威胁模型 4、fvp_r 平台威胁模型 5、RSS-AP接口威胁模型 威胁建模是安全…

290页12万字数字乡村项目规划建设方案WORD

导读:原文《290页12万字数字乡村项目规划建设方案WORD》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 目录 第一章总体概述1 1.1.建设背景1 1.1.1.数…

马斯克又出昏招、最疯狂的举动之一

马斯克正在限制他不喜欢的新闻网站和竞争对手的流量。在 X(原 Twitter)上点击纽约时报、路透社、Facebook、Instagram、Threads、Bluesky 和 Substack 的链接,X 故意增加 5 秒钟的开启延迟。 5 秒延迟,新的降权举措? …

VisualStudio打包项目文件为.exe安装包

前言: 使用扩展:install Projects 注意事项:打包项目前,确保项目能正常运行,不然打包毫无意义。 一、安装扩展 打开vs软件->扩展->管理扩展->搜索install Projects->安装->重启软件 二、制作安装包&a…

抖音小程序SEO关键词布局开发文档

一、概述 抖音小程序SEO关键词布局是指在小程序中合理地安排关键词,以提高小程序的搜索排名和用户流量。本开发文档旨在提供关于抖音小程序SEO关键词布局的指导,帮助开发者有效实施关键词布局策略。 二、数据分析 在实施抖音小程序SEO关键词布局之前&a…

SOLIDWORKS镜向是什么?

在现代工程设计中,使用CAD软件是必不可少的。SOLIDWORKS作为一款功能强大的三维建模软件,提供了众多的工具和功能,帮助工程师以更高的效率进行设计。其中,SOLIDWORKS 镜向功能被广泛应用于设计过程中,为用户带来了许多…

园艺照明设备植物生长灯UL8800亚马逊美国站审核标准

美国是一个对安全要求非常严格的国家,美国本土的所有电子产品生产企业早在很多年前就要求有相关安规检测。而随着亚马逊在全球商业的战略地位不断提高,境外的电子设备通过亚马逊不断涌入美国市场,美国对境外的电子产品生产企业并没有强制性的…

08- AD/DA模/数转换

AD/DA模/数转换 8、AD/DA模/数转换8.1 AD转换注意 示例8.2 DA转换DAC转换原理: 8.3 PWM的DAC 8、AD/DA模/数转换 8.1 AD转换 通道引脚对照表: ADC的引脚: 规则通道和注入通道: 各个通道可以在单次、连续、扫描或者间断模式里…

联想拯救者笔记本Win11系统键盘无法打字解决参考方法

一位好机友新购买的联想拯救者笔记本在使用过程中突然发现整个键盘都不能使用了、不能打字、按任何按键都没有反应,只有鼠标能正常操作;那么这是什么问题呢?能不能是笔记本的键盘坏了呢?还是笔记本出现了什么故障而引起键盘失灵呢…

【微服务技术二】Feign、Gateway(路由、过滤器、跨域)的初步认知

微服务技术二 五、Feign远程调用Feign替代RestTemplate自定义Feign配置方式一:配置文件方式:方式二:java代码方式 Feign性能优化Feign的最佳实践* 六、Gateway网关搭建网关服务路由断言工厂Route Predicate Factory路由过滤器 GatewayFilter默…

Linux网络编程(TCP状态转换关系)

文章目录 前言一、TCP状态转换图二、TCP连接状态转换解析三、TCP断开状态转换解析四、为什么需要有2MLS时长总结 前言 本篇文章来讲解一下TCP的状态转换关系,学习这个状态转换关系对于我们深入了解网络编程是非常有必要的。 一、TCP状态转换图 二、TCP连接状态转换…

【数据结构OJ题】相交链表

原题链接:https://leetcode.cn/problems/intersection-of-two-linked-lists/description/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 看到这道题,很容易想到的方法就是暴力求解,就是将一个链表的每个结点的地址…

【Spring专题】Spring之Bean的生命周期源码解析——阶段二(一)(IOC之实例化)

目录 前言阅读准备阅读指引阅读建议 课程内容一、SpringIOC之实例化1.1 简单回顾1.2 概念回顾1.3 核心方法讲解 二、方法讲解2.1 AbstractBeanFactory#getMergedLocalBeanDefinition:合并BeanDefinition2.2 AbstractAutowireCapableBeanFactory#createBean&#xff…

iOS 17 测试版中 SwiftUI 视图首次显示时状态的改变导致动画“副作用”的解决方法

问题现象 精彩的 SwiftUI 动画可以让我们的 App 活灵活现、精妙绝伦。不过原本正常的动画在测试版本的 iOS 里却有着让码农持续秃头的“副作用”: 我们希望在视图首次显示时驱动状态改变来产生橘色小球围绕红球旋转的动画,红球应该始终保持在屏幕中心。…

Flink的Standalone部署实战

在Flink是通用的框架,以混合和匹配的方式支持部署不同场景,而Standalone单机部署方便快速部署,记录本地部署过程,方便备查。 环境要求 1)JDK1.8及以上 2)flink-1.14.3 3)CentOS7 Flink相关信…

腾讯24届校招内推

校招开始啦~有兴趣的话可以扫我的码投,也可以分享给身边找工作的同学~ ❤投递攻略 1️⃣腾讯校招步骤,先微信扫码绑定内推关系,后在电脑上上传更改简历和部门投递 2️⃣投递时将选择投递部门,投递后将在…

实战项目-在线学院 阿里云视频的操作

一 阿里云视频 1.1 阿里视频上传 1.2 阿里云视频上传

Vue3 Vuex状态管理多组件传递数据简单应用

去官网学习→安装 | Vuex cd 项目 安装 Vuex&#xff1a; npm install --save vuex 或着 创建项目时勾选Vuex vue create vue-demo ? Please pick a preset: Manually select features ? Check the features needed for your project: (Press <space> to se…

RocketMQ主题下的队列只有两个被订阅

一、场景 主题下的队列只有两个被订阅 二、消费者 一共有两个消费者 Consumer1 所在消费组&#xff1a;C_TEST_1订阅主题&#xff1a;fsc_wb_ccs_web_orderly_84 Consumer2 所在消费组&#xff1a;C_TEST_1订阅主题&#xff1a;fsc_wb_ccs_web_84 三、原因 两个不同的消…