RocketMQ开发规范:顺序消息与延时特性详解
8 浏览量
更新于2024-08-04
收藏 529KB PDF 举报
本文档深入探讨了RocketMQ开发规范,一种高效且可靠的分布式消息中间件。RocketMQ版是基于Apache RocketMQ构建,它强调低延迟、高并发、高可用性和高可靠性,适用于分布式应用系统中的异步解耦和负载均衡,同时支持海量消息处理和高吞吐量。
**存储选型**
- **顺序消息**:针对性能需求高的场景, RocketMQ采用局部顺序策略,使用Sharding Key作为分区字段,确保同一分区内的消息顺序严格按照特定逻辑排列。
- **延时消息**:与RabbitMQ相比,RocketMQ提供了延迟消息支持,这对于有时间敏感需求的应用非常重要。
**可靠性**
RocketMQ提供了多种刷盘和复制策略,包括异步和同步方式,以保证数据持久化和容错性。Kafka则倾向于异步刷盘,但可能会牺牲一些可靠性,而RocketMQ的同步复制提供了更高的数据一致性。
**队列数限制**:
- Kafka在单机上限制了队列数量,超过64个可能导致性能下降;相比之下,RocketMQ单机支持高达5万个队列,性能更为稳定。
**消息回溯**:
- Kafka支持基于Offset的回溯,但精确度可能不如RocketMQ的毫秒级时间点回溯,后者允许用户精确到一天中的某个具体时间点。
**消费失败重试**:
- RocketMQ支持消费失败的定时重试机制,允许在指定间隔内自动重试,有助于提高消息处理的可靠性。
**命名规范**:
- 建议消息队列和消费者组名称具有清晰的命名规则,易于理解和管理,避免使用特殊字符,如空格、换行符等。
- 示例:MQ队列名遵循"MQ_业务领域_环境标识",如MQ_hub2lmis_create_wo_pro;消费者组名结构相同。
**消息体规范**:
- 不建议发送过大的消息,尤其是超过4MB的,这些数据通常会被存储在OSS中以节省内存。
- 消息体中的每个消息需设置唯一的业务标识键(key),便于定位和追踪。
**最佳实践**:
- **生产者注意事项**:推荐一个业务对应一个Topic,每个消息携带唯一的业务标识键,并适当记录日志,便于追踪消息生产和消费状态。
通过遵循这些开发规范,开发者可以充分利用RocketMQ的优势,确保分布式系统的高效运行和数据安全。
2018-04-16 上传
2022-12-19 上传
2022-12-19 上传
519 浏览量
426 浏览量
325 浏览量
浮生(FS)
- 粉丝: 324
- 资源: 28
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析