rocketmq-如何解决高可用问题?

RocketMQ源码中,7种导致重复消费的坑! 总得来说,RocketMQ中还是存在很多种导致消息重读消费的情况,并且官方也说了,只是在大多数情况下消息不会重复所以如果你的业务场景中需要保证消息不能重复消费,那么就需要根据业务场景合理的设计幂等技术方案。 阅读详情

架构

官方架构图

复制数据

主从复制,其实就是把主节点数据复制到从节点。

自动切换

如果主节点挂了,从节点会自动晋升为主节点。

版本区别

高版本

4.5和以上,支持自动切换。

低版本

4.5以下,不支持自动切换。

自动切换-实现原理

1.主节点挂了

2.选择一个从节点

1)一个从节点

如果只有一个从节点,就选择这个从节点晋升为主节点。

2)多个从节点

如果有多个从节点,就选举,过半以上节点选择了某个从节点,该节点才会晋升为主节点。

小结

高可用的核心

1.有一个备胎节点

2.实现自动切换功能

读写数据

主节点

写和读。

从节点

最佳实践是不写也不读,只备胎。

从节点默认是不读,但是也可以设置为可读——但是最好不要这么做,因为徒增复杂度,容易引起故障。

消费数据

如果主节点挂了,

1.高版本

从节点会自动晋升为主节点,然后就可写可读。

2.低版本

从节点不会晋升为主节点。那主节点的没有来得及消费的数据怎么办?消费者会从备胎节点读数据,这正是从节点的作用。

但是,此时,从节点是不能写数据的。所以,相当于主节点集群数量少了一个节点,就像dubbo集群服务一样,少了一个节点,是没有影响的。但是,如果剩下的主节点比较少,比如总共只有2个,然后还挂了一个,这个时候就会存在单点故障。

RocketMQ 标题RocketMQ基础面试题 一.首先你要知道MQ解决了你们系统中的哪些问题? 答: 1、支付订单流程中步骤过多,订单系统完成核心的步骤,发送消息到MQ,其他的服务从MQ获取消息,执行比较耗时的操作。 2、退款失败问题,订单支付系统完成公司系统内部业务的核心流程,发送消息到MQ,使用一个专门的系统区处理和第三方支付系统的交互。 3、大促时,大量下单请求放到MQ,订单系统以合适的速度消费消息,处理相关业务 对于我的项目而言,我的项目比较简单,有个订单系统,订单系统会每次下一个新的订单的时候,就会发送时一条消 阅读详情

相关推荐

深入了解RocketMQ集群架构原理以及高可用集群搭建详细过程

深入了解RocketMQ集群架构原理以及高可用集群搭建详细过程RocketMQRocketMQ简单介绍基本概念特性深层解析集群原理技术架构部署架构Rocketmq高可用集群搭建详细过程集群部署方式单Master模式多Master模式多Master多Slave模式-异步复制------以这种方式部署集群为例来搭建集群多Master多Slave模式-同步双写------线上使用的话,推荐使用此模式集群集群搭建环境双主双从异步复制集群部署情况集群搭建过程创建目录下载解压文件到 /usr/local/目录下用户和组

weixin_44798288的博客 3689

阿里二面:RocketMQ 集群 Broker 挂了,会造成什么影响?

RocketMQ集群如果一个Broker挂了,会造成什么影响?

zjj2006的专栏 3299

rocketmq原理源码分析之dledger控制器模式-原理分析

RocketMQ 4.5 版本之前,RocketMQ 的broker是 Master/Slave部署架构,一组 broker 有一个 Master ,有0到若干Slave,Slave复制Master消息存储,随时替代下线的Master。Master/Slave部署架构提供一定的高可用性,但这样的部署架构,主节点下线需要手动进行重启或者手动切换,需要一个新的多副本架构,支持自动切换,解决方案基本可以分为两种:rocketmq选择 raft,目前有 dledger和jraft两个实现,本文分析dledger控制

leehom的博客 1277

MQ面试题

MQ会丢失消息吗,怎么保证不丢消息 1、哪些环节会有丢消息的可能? 其中,1,2,4三个场景都是跨网络的,而跨网络就肯定会有丢消息的可能。 然后关于3这个环节,通常MQ存盘时都会先写入操作系统的缓存page cache中,然后再由操作系统异步的将消息写入硬盘。这个中间有个时间差,就可能会造成消息丢失。如果服务挂了,缓存中还没有来 得及写入硬盘的消息就会丢失。 2、RocketMQ消息零丢失方案 1》 生产者使用事务消息机制保证消息零丢失 1、为什么要发送个half消息?有什么用? 这个half消息是在订单

臭臭猫 739

同程旅行基于 RocketMQ 高可用架构实践

简介:我们在几年前决定引入 MQ 时,市场上已经有不少成熟的解决方案,比如 RabbitMQ , ActiveMQ,NSQ,Kafka 等。考虑到稳定性、维护成本、公司技术栈等因素,我们选择了 RocketMQ。 背景介绍 ​ 为何选择 RocketMQ ​ 我们在几年前决定引入 MQ 时,市场上已经有不少成熟的解决方案,比如 RabbitMQ , ActiveMQ,NSQ,Kafka 等。考虑到稳定性、维护成本、公司技术栈等因素,我们选择了 RocketMQ : ​ 纯 Java 开.

阿里云云栖号 1336

搭建rocketmq集群遇到的坑点及解决办法

在搭建rocketmq集群过程中遇到的问题,记录下了,以免后来人浪费时间

RocketMQ:主从同步机制

主从同步,同步的是啥?作为消息中间件,无疑是消息相当于给数据做备份,主节点宕机后,消费者可以从 从节点消费消息,可以保证业务的正常运行。

Ramboy's Blogs 1140

极空间NAS小白也能搞定的Gitea部署:Docker+MySQL避坑全记录

本文为极空间NAS用户提供了一份详尽的Gitea私有代码仓库部署指南。针对极空间ARM架构和图形化Docker管理的特殊性,文章重点讲解了如何通过Docker和MySQL容器进行部署,并提供了三种获取兼容镜像的实战策略,特别是利用第三方镜像站转录的方法,帮助小白用户成功搭建并初始化Gitea服务,实现私有Git托管。

weixin_28318011的博客 365

Rocketmq 测试主节点broker宕机,从节点保证消息可用

消息集群测试环境:主从,1主1从, Rocketmq4.4版本 测试内容: 1.Master-broker 宕机,Slave-broker 无法写入消息 2. Slave-broker从节点可继续提供给consumer消费未消费完的消息 3.Master重新上线,同步已经被slave消费的offset数据 ...

qq_25911515的博客 3975

高德地图JSAPI中旋转Marker点标签图片时候,且不旋转lable内容方法。

高德地图JSAPI中旋转Marker点标签图片时候,且不旋转lable内容方法

weixin_42960380的博客 2499

FIFO Generate IP核使用——FIFO写操作详解及Status Flags页配置

本文介绍了FIFO的写操作及Status Flags页的配置信息。

u011565038的博客 2283

rocketmq 如何保证高可用_RocketMQ高阶业务问题及解决方案

RocketMq全链路消息零丢失方案发送消息到mq零丢失: 事务消息Broker 存储消息零丢失:同步刷盘+主从机制Consumer 消费消息零丢失:手动提交offset + 自动故障转移Broker消息零丢失方案:同步刷盘 + Raft协议主从同步Broker 是负责存储消息的,怎么保证消息发送到Broker后,一定不会丢失呢?刷盘失败首先RocketMq一般情况下,为了保证高吞吐量,使用的是异...

weixin_33138675的博客 245

Xilnx大学计划/XUP ZYNQ ZU开发板

TUL PYNQ™-ZU板,基于Xilinx Zynq UltraScale+ MPSoC,是为Xilinx大学项目设计的,以支持Xilinx PYNQ (Python Productivi-ty for Zynq)开源框架和嵌入式系统开发。

weixin_57025922的博客 946

RocketMQ的高可用

在RocketMQ的高可用架构中,重点关注两点:第一个点是主从同步,第二个点是故障转移。

ZhiguoXue_IT的博客 733

uni踩坑笔记 - 离线打包调起微信分享后从微信返回APP时黑屏

apk能成功调起微信并进行分享操作,但分享完成后点击回到应用后应用出现黑屏的情况,并在约3-5秒后自动重启。

weixin_46737742的博客 5215

深入浅出讲解外部服务提供者 OAuth 2.0 帐户客户端创建与 ABAP 系统集成

本文详细介绍了在SAP ABAP平台配置OAuth 2.0客户端以安全调用外部Web服务的完整流程。主要内容包括:首先需要在外部服务提供者平台注册OAuth客户端,获取client ID和client secret;其次需特别注意重定向URI必须是公开可访问的地址;然后在ABAP系统中通过事务码OA2C_CONFIG配置OAuth客户端信息;最后阐述了常见的错误排查方法。文章强调了OAuth 2.0作为SAP系统与外部服务安全集成的标准协议,正确配置客户端是确保后续API调用安全可靠的关键前提。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1732

【有料】4 种高可用 RocketMQ 集群搭建方案!

假设某个Topic的每秒十万消息的写入, 可以增加 Master Broker 然后十万消息的写入会分别分配到不同的 Master Broker ,如有5台 Master Broker 那每个 Broker 就会承载2万的消息写入。每台 NameServer 都会有完整的集群路由信息,包括所有的 Broker 节点的信息,我们的数据信息等等。数据都是分布式存储的,每个Topic的数据都会分布在不同的 Broker 中,如果需要存储更多的数据,只需要增加 Master Broker 就可以了。

daobuxinzi的博客 1751

Android开发工程师(IOT)面试指南与参考答案

【摘要】绿联科技招聘Android开发工程师(IOT方向),要求5年以上Android开发经验,精通Kotlin/Java,熟悉IOT设备交互及跨平台开发。岗位职责包括客户端开发维护、技术调研及性能优化等。核心考察点包括:Kotlin协程在IOT低功耗场景的应用、多协议设备连接层设计、音视频性能优化及离线架构实现。重点技术涉及蓝牙Mesh群控、BLE功耗优化及ReactNative混合开发。需具备GooglePlay合规经验,熟悉Android13+权限管理,并能提供量化性能优化案例。

郑伟强dev的专栏 720

4 种高可用 RocketMQ 集群搭建方案

背景 笔者所在的业务线,最初化分为三个服务,由于业务初期业务复杂度相对简单,三个业务服务都能很好的独立完成业务功能。 随着产品迭代,业务功能越来越多后慢慢也要面对高并发、业务解耦、分布式事务等问题,所以经过团队内部讨论,引入 RocketMQ 消息中间件来更好的处理业务。 由于公司内部业务线部署相互独立,我们业务线对引入 RocketMQ 的需求也比较急切,所以打算自己搭建一套高可用的 RocketMQ 集群,同时对于自建的 RocketMQ 集群需要如下特性: 高可用 高并发 可伸缩 海量消

穷水叮咚的博客 569

Apache DolphinScheduler 实现了对 OceanBase 的元数据库支持

Apache DolphinScheduler 是一款开源的分布式工作流任务调度系统,它提供了可视化的工作流设计和调度功能,支持大数据任务的自动化调度和监控。最近的更新中,Apache DolphinScheduler 引入了对 OceanBase 数据库的元数据库支持,这为用户在大数据环境中管理和调度任务提供了更多选择。用户可以通过 DolphinScheduler 提供的可视化界面进行工作流的设计和调度,也可以通过 DolphinScheduler 提供的 API 进行任务的编程调度。

VavzNvml的博客 493

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

RocketMQ高可用集群搭建详解

本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 chaodev 即可关注。 文章目录1、RocketMQ简介2、单机安装部署2.1 系统环境2.2 下载解压2.3 修改初始内存2.4 启动服务2.5 发送接收消息测试2.6 关闭服务3、集群搭建3.1 配置集群3.2 防火墙配置3.3 启动集群3.3.1 启动NameServer集群3.3.2 启动Master3.3.3 启动Slave4、图形化管理控制台5、爬坑之路5.1 启动服务无反应5.2 启动broker服务提示如下错误 1、.

程序员大佬超的博客 1242

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

RocketMq-高可用机制

高可用机制 RocketMQ分布式集群是通过Master和Slave的配合达到高可用性的。 Master和Slave的区别: 在Broker的配置文件中,参数brokerId的值为0表明这个Broker是Master, 大于0表明这个Broker是Slave, brokerRole参数也说明这个Broker是Master还是Slave。 (SYNC_MASTER/ASYNC_MASTER/SALVE) Master角色的Broker支持读和写,Slave角色的Broker仅支持读。 Consumer可以连

小城我家 2057

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

高可用的升级-RocketMQ知识体系7

一直以来,在多地多中心的消息发送场景下,如何保障数据的完整性和一致性是一个技术难点。在 RocketMQ 4.5 版本之前,RocketMQ 只有 Master/Slave 一种部署方式,一组 broker 中有一个 Master ,有零到多个Slave,Slave 通过同步复制或异步复制的方式去同步 Master 数据。Master/Slave 部署模式,提供了一定的高可用性。但这样的部署模式,有一定缺陷。比如故障转移方面,如果主节点挂了,还需要人为手动进行重启或者切换,无法自动将一个从节点转换为主节点。

WJY_123456的专栏 417

RocketMQ学习总结

在网上看了一下关于rocketmq的面试题,在总结一下,算是一个阶段性学习吧 什么是解耦? 什么是异步? 什么是削峰填谷? RocketMQ 执行流程 怎么理解 Producer 的? 怎么理解 Consumer 的?消费者消费模式有哪几种?? RocketMQ 如何保证高可用的? 如何保证消息不被重复消费?或者说如何保证消息消费时的幂等性? 如何保证消息的可靠性传输?要是消息丢失了怎么办? 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,

qq_40918324的博客 718

RocketMQ实战—6.生产优化及运维方案

合集 - RocketMQ原理与应用(11)1.RocketMQ原理—2.源码设计简单分析上01-222.RocketMQ原理—3.源码设计简单分析下01-253.RocketMQ原理—4.消息读写的性能优化01-254.RocketMQ原理—5.高可用+高并发+高性能架构01-275.RocketMQ实战—1.订单系统面临的技术挑战01-276.RocketMQ实战—2.RocketMQ集群生产...

weixin_40474129的博客 135

RocketMQ高可用架构及二主二从异步集群部署

RocketMQ发展历史 RocketMQ是一个由阿里巴巴开源的消息中间件, 2012年开源,2017年成为apache顶级项目。RocketMQ在阿里内部应用是非常广泛的,阿里内部的几千个应用都运行在RocketMQ之上,双十一期间需要处理亿万级别的消息,TPS可以达到几十万。目前支持Java、C/C++,Python、Go四种语言访问。 RocketMQ现在有两个版本,一个是社区开源版,一个是商业的云服务版(AliwareMQ)。最新版本:4.8.0(本文演示版本)。 它的核心设计借鉴了Kafka,所以

a779868946的博客 846
上一篇: redis如何解决高可用问题?
下一篇: zookeeper-如何解决高可用?
Java个体户
博客等级 码龄6年 6粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值