RocketMQ消息队列规约
作者:程序员马丁
note
热门项目实战社群,收获国内众多知名公司面试青睐,近千名同学面试成功!助力你在校招或社招上拿个offer。
命名规范
RocketMQ 相关命名强制使用英文小写。
1)【强制】Topic 命名:业务线项目名topic。业务线或项目包含多个单词,使用 - 分割,例如:common_message-center_topic
。
2)【强制】Tag 命名:业务线项目业务_tag,例如:common_message-center_send-message_tag
。
3)【强制】生产者组命名:业务线项目**业务_pg,例如:common_message-center_send-message_pg
。
4)【强制】消费者组命名:业务线项目**业务_cg,例如:common_message-center_send-message_cg
。
申请规范
创建 Topic 需要走线上申请,申请时补充下述信息。
申请人:马丁
Topic:common_message-center_topic
Produce:
生产应用 | 生产者组 | Tag | 备注 | |
---|---|---|---|---|
1 | message-center | common_message-center_send-message_pg | common_message-center_send-message_tag | 流量削峰 |
2 | message-center | common_message-center_send-message_pg | insurance_trading-order_send-message-fail_tag | 微信模板消息发送失败通知保险项目 |
Consume:
消费应用 | 消费者组 | Tag | 消费模型 | 备注 | |
---|---|---|---|---|---|
1 | message-center | common_message-center_send-message_cg | common_message-center_send-message_tag | 集群模式 | 发送微信模板、短信、小程序等消息 |
2 | trading-order | insurance_trading-order_send-message-fail_cg | insurance_trading-order_send-message-fail_tag | 集群模式 | 微信模板消息发送失败通知保险项目 |
使用规范
1. 消息发送
1)【强制】消息生产者创建时,必须指定生产者组。
2)【强制】一个系统对应一个 Topic,系统下的不同业务根据 Tag 区分,参考申请规范-消费应用 Tag。
3)【强制】发送消息时,需设置 KEYS。KEYS 建议定义为业务唯一标识,比如订单 ID。
4)【强制】发送消息不管发送成功或失败,需打印 KEYS、Payload、执行时间以及 SendResult
。
5)【强制】发送消息时,需设置超时时间,避免应用被拖垮;建议超时时间设置为 2000ms 内。
6)【建议】针对可靠性较高的消息,发送失败后可以存储到 DB,开启定时任务扫描,并重新投递。