网站首页 > 博客文章 正文
为什么说ROcketMQ更适用于业务型的消息中间件,因为它能够保证消息不丢失且带有事务消息。
先来看一张RocketMQ集群部署结构
其中Name Server主要是提供路由信息,这里暂时忽略,大致流程为:
Producer(生产者生产消息) --> Broker(存储消息) --> Consumer(消费消息)
接下来我们通过这分析者三个节点来具体说明:
Producer(生产者生产消息)
- 默认情况下可以通过同步的方式发送消息,然后检查发送状态,如果是OK,就一定发送到了Broker,否则会触发默认的2次重试,这里可能成功也可能没成功,可以代码处理
- 采用事务消息TransactionMQProducer方式发送消息,不能保证一定发送到Broker(事务回滚);但如果发送Consumer时返回Ack失败的话,会保存在CommitLog中,不能算完全丢失
- RocketMQ支持日志的索引,如果一条消息发送之后超时,可以通过查询日志的API来检查是否在Broker存储成功
Broker(存储消息)
- 消息支持持久化到CommitLog中,即使宕机重启,也可以保证消息不会丢失
- Broker支持同步或异步刷盘策略,可以保证接收到的消息一定存储在本地文件中
- Broker集群中支持1主N从策略,支持同步双写、异步复制,其中同步双写可以保证即使Master磁盘崩溃,消息不会丢失(在从节点有相同的备份)
Consumer(消费消息)
- Consumer自身维护一个持久化的offset(对应MessageQueue里面的min offset),标记已成功消费或发回Broker消息的下标
- 如果Consumer消息消费失败,会将消息发回到Broker,然后更新自己的offset
- 如果在消息发回到Broker过程中Broker挂了,Consumer会定时重试这个操作
- 如果Broker和Consumer同时挂了,消息也不会丢失(CommitLog和持久化offset),在重启恢复后继续从offset继续消费消息
总结
总结来说就是:多次重试+持久化+offset+主从备份 来保证消息不丢失
猜你喜欢
- 2025-01-12 一次 RocketMQ 顺序消费延迟的问题定位
- 2025-01-12 线上问题之:RocketMq重复消费
- 2025-01-12 基于 RocketMQ 的分布式事务解决方案
- 2025-01-12 生产环境出现网络分区,RocketMQ集群表示毫无压力
- 2025-01-12 实战!如何从零搭建10万级 QPS 大流量、高并发优惠券系统
- 2025-01-12 RocketMQ的高性能网络通信机制竟然是如此实现?
- 2025-01-12 10 张图告诉你 RocketMQ 是怎样保存消息的
- 2025-01-12 RocketMQ系列(六)批量发送与过滤
- 2025-01-12 Canal集群快速搭建
- 2025-01-12 从放弃到入门:消息队列之RocketMQ
你 发表评论:
欢迎- 07-07Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- 07-07Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- 07-07Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- 07-07Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- 07-07IT运维必会的30个工具(it运维工具软件)
- 07-07开源项目有你需要的吗?(开源项目什么意思)
- 07-07自动化测试早就跑起来了,为什么测试管理还像在走路?
- 07-07Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- 最近发表
-
- Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- IT运维必会的30个工具(it运维工具软件)
- 开源项目有你需要的吗?(开源项目什么意思)
- 自动化测试早就跑起来了,为什么测试管理还像在走路?
- Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- Cursor 太贵?这套「Cline+OpenRouter+Deepseek+Trae」组合拳更香
- 为什么没人真的用好RAG,坑都在哪里? 谈谈RAG技术架构的演进方向
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)