论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
RocketMQ场景问题
RocketMQ场景问题
用多少眼泪才能让你相信
论坛元老
|
2025-1-5 15:37:50
|
显示全部楼层
|
阅读模式
楼主
主题
1004
|
帖子
1004
|
积分
3014
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
1.消息丢失
有这么一个场景,就是订单支付完成之后,订单系统会进行发送消息给RocketMQ集群,下游会有积分系统进行监听这个消息,进行消费然后给用户发放积分。在下面的这个场景中,通过查询日志发现了订单系统发送订单支付消息的日志。别的就没有了。
那我们进行分析
1. 发送订单支付消息给RocketMQ集群会出现消息丢失的情况的吗?
会出现消息丢失的情况,大概出现的原因:在发送的过程中,出现了网络抖动,导致了消息没有发送的MQ的集群上;MQ集群收到了消息,但是在进行保存的时候,由于自身的一些bug或者其他原因导致数据没有存储上也是大概的等。
2.消息到达了MQ,MQ会自己导致数据丢失吗?
答案也是大概的,举个例子,我们发送消息到MQ集群上,此时消息还是在os cache中,还是没有写入到磁盘,此时Broker呆板发生了宕机,那么消息就会出现丢失的情况。
3.消息到达了MQ,而且MQ将数据写入了磁盘,数据还会丢失吗?
答案还是有大概的,比方说磁盘发生了故障,导致数据的丢失。
4.消费者拿到了消息,消息就不会丢失了吗?
答案还是有大概会丢失的,假如我们的消费者拿到了消息,此时还没有进行消费,此时系统会有自动提交offset的本事,自动提交了offset,同时咱们的消息者宕机了,那么再次重启之后,这条消息就会出现丢失的情况。
解决方案:
针对情况一:我们可以采用RocketMQ的事件消息机制来包管消息发送的可靠性。
步调一 都失败了,那就没须要进行更新订单状态可以直接返回了;
步调二失败了 此时就会有步调五算是一个赔偿机制来进行反查状态;
步调三失败了,会触发步调四进行RollBack;
步调四失败了此时就会有步调五算是一个赔偿机制来进行反查状态;
针对情况二,情况三:我们采用同步刷盘和Raft协议主从同步的策略
当我们的Broker接收到消息之后,会先写入到os cache中,此时还没写入到磁盘中,这个时候如果呆板宕机了,消息就会丢失了。需要将默认的刷盘机制由异步刷盘改为同步刷盘,同时采用Broker集群的策略,一个Master broker写入成功,一个slave broker写入成功才认为是写入成功。这样的话就算Master Broker宕机了,slave Broker上也有消息,不会出现消息的丢失的情况。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
用多少眼泪才能让你相信
论坛元老
这个人很懒什么都没写!
楼主热帖
iNeuOS工业互联网操作系统,增加搜索应 ...
安卓期末大作业——单词本APP(源码+任 ...
【Java开源数据库语言】基于SPL如何提 ...
杭州联合银行 x 袋鼠云:打造智能标签 ...
vue3+Element采用递归调用封装导航栏 ...
个人博客系统(附源码)
真正在大厂干了几年,我学会了反内卷[ ...
攻防世界 new_easypwn 题解
内网安全 - 简单域环境搭建
ssrf实战
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
SQL-Server
云原生
Oracle
物联网
虚拟化与私有云
网络安全
Mysql
前端开发
快速回复
返回顶部
返回列表