rocketmq主题规范

命名规范

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

使用规范

【生产者】
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【建议】如果消息量较少,建议在消费入口打印消息、消费耗时等,方便后续排查问题。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiegwei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值