消息中间件使用规范(RocketMQ)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 消息中间件使用规范(RocketMQ)

1、命名规范

1、【强制】Topic命名:topic+下划线+业务名,例如:订单领域topic命名为:topic_order。
2、【强制】tag命名:tag+下划线+业务动作,比如:订单创建的tag为:tag_create;订单关闭的tag为:tag_close。
3、【强制】生产者分组命名:pg+下划线+业务名,例如:订单创建生产者发送订单创建消息,那么生产者分组名为:pg_order
4、【强制】消费者分组命名:cg+下划线+业务名+下划线+订阅topic名称+下划线+订阅tag名称。
              例如:订单创建消息topic为topic_order,tag为tag_create,消息生产者为订单服务,用户服务和支付服务需要消费这条消息,那么用户服务的消费者分组命名为cg_user_order_create,支付服务的消费者分组命名为cg_payment_order_create。

2、使用规范

【生产者】
2.1【强制】一个领域服务只能有一个topic。
2.2【强制】领域服务发送消息时必须根据业务动作设置tag。
2.3【强制】在Producer发送消息时必须设置keys。
2.4【强制】​消息发送成功或者失败要打印消息日志,务必要打印SendResult和key字段。
2.5【建议】消息发送失败后建议将消息存储到db,然后由定时器类线程进行定时重试,确保消息达到broker。
2.6【建议】对于可靠性要求不高的业务场景可以使用oneway消息。
2.7 【强制】新建生产者时必须指定生产者分组。
【消费者】
2.8【强制】新建消费者时必须指定消费者分组。
2.9【强制】消息消费者无法避免消息重复,所以需要业务服务来保证消息消费幂等。
2.10【建议】为了提高消费并行度,可以在同一个ConsumerGroup下启动多个Consumer实例或者通过修改ConsumeThreadMin和consumeThreadMax来提高单个Consumer的并行消费能力。
2.11【建议】为了增加业务吞吐量,可以通过设置consumer的consumeMessageBatchMaxSize来批量消费消息。
2.12 【建议】发生消息堆积时,如果业务对数据要求不高时,可以选择丢弃不重要的消息。
2.13【建议】如果消息量较少,建议在消费入口打印消息、消费耗时等,方便后续排查问题。

3、申请规范

3.1 【强制】在新建topic时必须进行申请,申请形式为:填写申请表,评审通过方可使用

4、参考

4.1 RocketMQ最佳实践:https://github.com/apache/rocketmq/blob/master/docs/cn/best_practice.md

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
1月前
|
消息中间件 存储 负载均衡
消息中间件的选择:RabbitMQ是一个明智的选择
消息中间件的选择:RabbitMQ是一个明智的选择
61 0
|
4天前
|
消息中间件 存储 中间件
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
22 0
|
4天前
|
消息中间件 存储 监控
【消息中间件】详解mq消息积压
【消息中间件】详解mq消息积压
11 0
|
1月前
|
消息中间件 Java 数据安全/隐私保护
Spring Cloud 项目中实现推送消息到 RabbitMQ 消息中间件
Spring Cloud 项目中实现推送消息到 RabbitMQ 消息中间件
|
7月前
|
消息中间件 数据库
消息中间件系列教程(18) -RabbitMQ-基于RabbitMQ解决分布式事务(思想)
消息中间件系列教程(18) -RabbitMQ-基于RabbitMQ解决分布式事务(思想)
55 0
|
7月前
|
消息中间件
消息中间件系列教程(17) -RabbitMQ-死信队列
消息中间件系列教程(17) -RabbitMQ-死信队列
137 0
|
7月前
|
消息中间件
消息中间件系列教程(16) -RabbitMQ-应答模式
消息中间件系列教程(16) -RabbitMQ-应答模式
43 0
|
7月前
|
消息中间件
消息中间件系列教程(15) -RabbitMQ-基于全局消息ID解决幂等性问题
消息中间件系列教程(15) -RabbitMQ-基于全局消息ID解决幂等性问题
55 0
|
7月前
|
消息中间件 缓存 API
消息中间件系列教程(14) -RabbitMQ-自动补偿机制
消息中间件系列教程(14) -RabbitMQ-自动补偿机制
115 0
|
7月前
|
消息中间件 Java Maven
消息中间件系列教程(13) -RabbitMQ-SpringBoot集成RabbitMQ
消息中间件系列教程(13) -RabbitMQ-SpringBoot集成RabbitMQ
53 0

相关产品

  • 云消息队列 MQ