自我表扬:《Dubbo 实现原理与源码解析 —— 精品合集》
表扬自己:《D数据库实体设计合集》
摘要: 原创出处 www.iocoder.cn/RocketMQ/me… 「芋道源码」欢迎转载,保留摘要,谢谢!
本文主要基于 RocketMQ 4.0.x 正式版
1. 概述
建议前置阅读内容:
当然对 Message
发送与消费已经有一定了解的同学,可以选择跳过。
RocketMQ
提供了两种顺序级别:
- 普通顺序消息 :
Producer
将相关联的消息发送到相同的消息队列。 - 完全严格顺序 :在
普通顺序消息
的基础上,Consumer
严格顺序消费。
绝大部分场景下只需要用到普通顺序消息。
例如说:给用户发送短信消息 + 发送推送消息,将两条消息发送到不同的消息队列,若其中一条消息队列消费较慢造成堵塞,用户可能会收到两条消息会存在一定的时间差,带来的体验会相对较差。当然类似这种场景,即使有一定的时间差,不会产生系统逻辑上BUG。另外,普通顺序消息
性能能更加好。
那么什么时候使用使用完全严格顺序?如下是来自官方文档的说明:
目前已知的应用只有数据库
binlog
同步强依赖严格顺序消息,其他应用绝大部分都可以容忍短暂乱序,推荐使用普通的顺序消息