rabbitMQ在高可用方面的集群方案

rabbitmq在高可用HA方面的方案总结 为了提高消息传递交付的可用性,rabbitMQ有几种集群的方案,不同的方案有不同的优缺点 1、普通的集群 rabbitMQ中的exchange和queue都包含meta、contents、state等信息,exchange在集群中的每个节点都保存一份数据, 但是queue不一样,queue在集群中对于contents只存储一份,其他节点只存储meta信息 为什么只在一个节点存储queue的 阅读详情

转至:http://blog.youkuaiyun.com/yangbutao/article/details/10982391

下面介绍rabbitMQ的两个高可用方面的集群方案

1、普通的集群
rabbitMQ中的exchange和queue都包含meta、contents、state等信息,exchange在集群中的每个节点都保存一份数据,
但是queue不一样,queue在集群中对于contents只存储一份,其他节点只存储meta信息
为什么只在一个节点存储queue的contents,官方是这么说的:
a、 Storage space—If every cluster node had a full copy of every queue, adding nodes
wouldn’t give you more storage capacity. For example, if one node could store
1 GB of messages, adding two more nodes would just give you two more copies
of the same 1 GB of messages.
b、 Performance—Publishing messages would require replicating those messages to
every cluster node. For durable messages, that would require triggering disk
activity on all nodes for every message. Your network and disk load would
increase every time you added a node, keeping the performance of the cluster
the same (or possibly worse).

对于publish,客户端任意连接集群的一个节点,转发给创建queue的节点存储消息的所有信息;
对于consumer,客户端任意连接集群中的一个节点,如果数据不在该节点中,则从存储该消息data的节点拉取。
可见当存储有queue内容的节点失效后,只要等待该节点恢复后,queue中存在的消息才可以获取消费的到。
显然增加集群的节点,可以提高整个集群的吞吐量,但是在高可用方面要稍微差一些
2、mirror queue
mirror queue是为rabbitMQ高可用的一种方案,相对于普通的集群方案来讲,queue中的消息每个节点都会存在一份copy,
这个在单个节点失效的情况下,整个集群仍旧可以提供服务。但是由于数据需要在多个节点复制,在增加可用性的同时,系统的吞吐量会有所下降。
在实现机制上,mirror queue内部实现了一套选举算法,有一个master和多个slave,queue中的消息以master为主,
对于publish,可以选择任意一个节点进行连接,rabbitmq内部若该节点不是master,则转发给master,master向其他slave节点发送该消息,
后进行消息本地化处理,并组播复制消息到其他节点存储,
对于consumer,可以选择任意一个节点进行连接,消费的请求会转发给master,为保证消息的可靠性,consumer需要进行ack确认,
master收到ack后,才会删除消息,ack消息会同步(默认异步)到其他各个节点,进行slave节点删除消息。
若master节点失效,则mirror queue会自动选举出一个节点(slave中消息队列最长者)作为master,作为消息消费的基准参考;
在这种情况下可能存在ack消息未同步到所有节点的情况(默认异步),
若slave节点失效,mirror queue集群中其他节点的状态无需改变。

以上两种集群的方案对于客户端来讲,都需要考虑节点的失效。
客户端可以容错性的方式连接rabbitMQ集群,比如失效重连下一个节点等。
也可以在客户端和mq之间加一个LoadBalancer,如HAProxy,做负载均衡,失效转发用。
MacOS下微信小程序源码提取与逆向实战:从找到.wxapkg到完整还原 本文详细介绍了在MacOS系统下进行微信小程序源码提取与逆向分析的完整实战流程。从定位沙盒机制中的.wxapkg缓存文件,到搭建Node.js环境与配置wxappUnpacker工具链,再到执行核心反编译命令并处理分包等复杂情况,提供了清晰的操作步骤。文章还汇总了Node版本、依赖缺失、文件乱码等常见问题的解决方案,旨在帮助开发者、安全研究人员高效完成小程序安全审计与学习。 阅读详情

相关推荐

保姆级教程:用CellOracle 0.10.13从单细胞数据构建基因调控网络(附完整代码)

本文提供了一份详细的CellOracle 0.10.13使用指南,帮助用户从单细胞数据构建基因调控网络。通过Python接口,即使是生物信息学新手也能快速掌握数据准备、KNN插补、GRN计算及可视化等关键步骤。文章包含完整代码和实用技巧,助力单细胞转录组数据分析。

weixin_42563415的博客 720

RabbitMQ高可用集群部署

目录 1 、集群方案的原理 2、RabbitMQ高可用集群相关概念 3 、一般模式集群 3.1 准备工作 3.2 配置DNS域名解析 3.3 配置集群启动 4 、集群管理 5 、RabbitMQ镜像集群配置 6、负载均衡-HAProxy 6.1 安装HAProxy 6.2 配置HAProxy 6.3 启动HAproxy负载 7、Java代码测试负载均衡代理 8、开启rabbitmq日志监控插件 9、Keppalive虚拟IP漂移 实际生产应用中都会采用消息队列的集群方案.

长沙老码农 5224

禾赛PandarXT-16/阿努比LpmsIG1运行lio-sam

课题是多传感器融合,将GNSS/INS/LIDAR做融合定位导航,故考虑使用lio-sam开源算法,在此记录一下我在适配传感器数据时遇到的一些问题;

qq_44705939的博客 2960

RabbitMQ高可用

RabbitMQ高可用各种消息队列对比使用推荐RabbitMQ 高可用普通集群模式镜像集群模式保证消息队列的幂等性(消息不被重复消费)消息队列的可靠性传输生产者丢失数据RabbitMQ丢失数据消费者丢失数据保证消息的顺序性消息积压问题 各种消息队列对比 特性 ActiveMQ RabbitMQ RocketMQ Kafka 单机吞吐量 万级, 吞吐量比RocketMQ和Kafka要低一个数量级 万级, 吞吐量比RocketMQ和Kafka要第一个数量级 10万级, RocketMQ也是可以支

始末丶Yzx的博客 3224

别再到处找模板了!我用这套软著申请材料(含用户手册+源代码模板)两个月搞定

本文提供了一套高效的软著申请材料模板,包括用户手册和源代码模板,帮助开发者两个月内快速完成申请。通过实战指南和常见误区解析,详细介绍了材料准备的规范与技巧,确保格式合规性,大幅提升审核通过率。

weixin_29268637的博客 548

视频监控设备(NVR、IPC等)如何通过国标GB28181接入到视频监控平台,以及接入过程如何测试视频接入是否成功

GB/T28181标准广泛的应用,视频监控设备通过国标GB28181接入视频监控平台的过程变成程序化、标准化的互联过程,确保了视频监控设备能够在不同系统、不同网络环境下实现远程、跨区域、跨级别的访问和控制。版本有GB28181-2011、2016、2022几个常用版本,威迪斯特的视频监控平台完全支持GB28181的这几个版本,能够实现不同品牌视频监控设备的国标视频接入(国标视频监控接入),或者为国标28181视频接入(国标28181视频监控接入),也为国标281818接入(国标GB/T28181接入。

weixin_70208651的博客 1万+

RabbitMQ 集群 + HA + Keepalived 的高可用部署

RabbitMQ 集群 + HA + Keepalived 的高可用部署。

RAB 1313

有了网段为什么还要有VLAN???

近几日,在学习VLAN及VXLAN方面的知识,对于产生原因做一个总结及详解。 VLAN(Virtual Local Area Network,虚拟局域网),其主要用途是用来缩小广播域,即进行隔离。 先对广播域的一个概念做如下描绘:如下图,主机A、B、C、D均连接在交换机SW1上,其中A、C同网段为192.168.252网段,而B和D同网段,为192.168.250网段。 现,假如A与C第...

dandandean_96的博客 6885

RabbitMQ常见问题之高可用

ha-modeha-params效果准确模式exactly队列的副本量count集群中队列副本(主服务器和镜像服务器之和)的数量。count如果为1意味着单个副本:即队列主节点。count值为2表示2个副本:1个队列主和1个队列镜像。count= 镜像数量 + 1。如果群集中的节点数少于count,则该队列将镜像到所有节点。如果有集群总数大于count+1,并且包含镜像的节点出现故障,则将在另一个节点上创建一个新的镜像。allnone队列在群集中的所有节点之间进行镜像。队列将镜像到任何新加入的节点。

m0_51390969的博客 2093

大数据分析案例-基于随机森林算法构建二手房价格预测模型

通过应用随机森林算法,我们希望建立一个能够有效预测二手房价格的模型。这个模型可以基于各种因素,如区域位置、房屋属性、市场供需等,来预测未来某一时间点的房价。通过提高预测准确性,我们可以更好地把握房地产市场动态,为决策提供更有价值的参考。揭示影响二手房价格的因素及其影响方式:通过分析随机森林算法生成的模型,我们可以进一步了解哪些因素对二手房价格有重要影响,以及这些因素如何影响房价。这有助于我们深入理解房地产市场的运行规律,为制定更为有效的市场策略提供依据。

m0_64336780的博客 1万+

如何使用tinyalas接口从usb录音的同时从扬声器播放

3、 以上步骤确认完后,就可以修改tinyhostless.c程序,tinyhostless的本质就是边pcm_read(),边pcm_write();但原本tinyhostless只支持对同一声卡进行操作,所有需要修改其代码,改成录音和播放可支持不同声卡,如果是模拟声卡,有回环测试,可以实现边录边播放,但涉及USB声卡时,就没有现场的类似功能,有时候客户因为硬件特殊性,会有从USB录音的同时从扬声器播放出来的需求,本文简要描述如何使用tinyalsa接口实现该需求;

sdrgtywretyeruet的专栏 969

RabbitMQ 集群与高可用方案设计(二)

镜像队列配置、负载均衡策略、Haproxy+Keepalive 实现高可用。

2113

基于STM32、HAL库的GZP6816D气压传感器 驱动程序设计

测量范围:0-16kPa(可根据型号不同有变化)工作电压:1.8V-3.6V。高精度:±1% FS。

corlin6688的博客 217

RabbitMQ 集群与高可用方案设计(一)

镜像队列配置、负载均衡策略、Haproxy+Keepalive 实现高可用。

1649

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

027. RabbitMQ 集群和高可用方案

1. 常用命令 rabbitmqctl status 查看节点状态。 rabbitmqctl stop [pid_file] 停止运行 R...

山海守门人 272

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

RabbitMQ 集群与高可用方案设计(三)

镜像队列配置、负载均衡策略、Haproxy+Keepalive 实现高可用。

1470

Kubernetes中部署高可用RabbitMQ集群的完整配置方案

本文介绍了在Kubernetes中部署高可用RabbitMQ集群的完整配置方案。

ymf51的博客 1164

RabbitMQ学习之集群和高可用方案

常用的管理命令 Cluster普通模式 Cluster镜像模式(高可用) 搭建RabbitMQ集群的大致流程: 复制erlang.cookie文件到其它服务器; 给防火墙添加端口; 集群服务器之间会同步元数据信息,而不同步数据本身。 1 常用的管理命令 rabbitmqctl status #展示broker的状态信息,包括RabbitMQ版本号、Erlang版本号、OS、内存等信息 ...

yygEwing的博客 286

[Open Source] RabbitMQ 高可用集群方案

简介 RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡。 Rabbit模式大概分为以下三种:单一模式、普通模式、镜像模式 RabbitMQ工作模式 单一模式 (最简单的情况,非集群模式) 普通模式 (默认的集群模式) 流程 对于Queue来说,消息实体只存在于其中一个节点,A、B两个节点仅有相同的元数据,即队列结...

denaoderenhuan8776的博客 164

RabbitMQ2/4---集群和高可用方案

RabbitMQ集群和高可用方案

Stephanie翟倩 572

网易云课堂学习-rabbitmq集群和高可用方案

常用管理命令 集群管理 查看集群状态:rabbitmqctl cluster_status 修改集群节点的类型,使用此命令前需要停止Rabbitmq应用: rabbitmqctl change_cluster_node_type {disc|ram} 将节点从集群删除,允许离线执行:rabbitmqctl forget_cluster_node [–offline] 在集群中的节点应用启动前,咨询clusternode节点的最新信息,并更新相应的集群信息。这个和join_cluster不同,它不加入

tiankongyun123的博客 340

RabbitMQ高可用性集群镜像实施方案

在我们使用rabbitmq作为消息服务时,在服务负载不是很大的情况下,一般我们只需要一个rabbitmq节点便能为我们提供服务,可这难免会发生单点故障,要解决这个问题,我们便需要配置rabbitmq的集群和镜像,以下便是使用两台服务器进行rabbitmq集群和镜像的实施步骤

chenliuzuo的专栏 4385

RabbitMQ 集群搭建指南:普通集群 vs 镜像集群,高可用方案选型

RabbitMQ集群部署指南:普通集群与镜像集群详解 摘要:本文深入解析RabbitMQ两种核心集群模式:普通集群(Classic Cluster)和镜像集群(Mirror Cluster)。普通集群通过共享队列元数据实现负载均衡,适合读多写少场景;镜像集群则通过队列复制确保高可用,适用于核心业务。文章详细介绍了两种集群的搭建步骤,包括Erlang Cookie配置、节点加入集群、镜像策略设置等关键环节,并对两种模式的核心差异进行了对比分析。

码路同行 1286

1.3.2 RabbitMQ 集群和高可用方案

常用管理命令 应用管理 集群管理 RabbitMQ 高可用集群方案 Cluster 模式 RabbitMQ 的Cluster模式分为两种 普通模式 镜像模式 Cluster普通模式 元数据包含以下内容: 队列元数据:队列的名称及属性 交换器:交换器的名称及属性 绑定关系元数据:交换器与队列或者交换器与交换器 vhost元数据:为vhost 内的队列、交换器和绑定提供命名空间及安全...

weixin_43871142的博客 350

RabbitMQ + Haproxy 高可用集群部署实战方案

Linux环境:Centos6.8 64-bit RabbitMQ版本:v3.6.6 RabbitMQ机器:192.168.2.242、192.168.2.243、192.168.2.244 Haproxy版本:v1.6.4 Haproxy机器:192.168.2.241 ...

chengshai8902的博客 1469

RabbitMQ集群和高可用方案

RabbitMQ集群和高可用方案插件 插件

weixin_45489092的博客 571

RabbitMQ 高可用方案:原理、构建与运维全解析

RabbitMQ 高可用方案:原理、构建与运维全解析

虽非技冠群英首,愿与同道共长歌; 大鹏一日同风起,扶摇直上九万里; 1347
上一篇: MVCC
下一篇: mysql主主关系配置
whycold
博客等级 码龄19年 280粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值