开发者社区 > 云原生 > 消息队列 > 正文

消息队列RocketMQ版同一条消息,为什么发送方和订阅方的 msgid 不一样?

消息队列RocketMQ版同一条消息,为什么发送方和订阅方的 msgid 不一样?

展开
收起
Lee_tianbai 2021-01-01 16:46:51 1556 0
1 条回答
写回答
取消 提交回答
    1. 检查是否是事务消息或延时消息,如果是,则是正常现象。需要做幂等的话 可以使用消息 key 来做幂等。事务消息或延时消息订阅方的 msgid 取的是 transactionId。 通过 message.getMsgID() 这个获取的 transactionId 在控制台上是查不 到消息的,这时候可以通过 message.getUserProperties().getProperty("UNIQ_KEY") 这个来获取真正的 msgid。
    2. 因为某些 sdk 的原因,有可能发送方和订阅方的 msgid 也会不一样。任何 类型的消息都是这样,这时订阅方的 msgid 是 offsetmsgid。这个很好区 分,transactionId 中英文字母是小写的,msgid 和 offsetmsgid 中英文字 母都是大写的。
    2021-01-01 16:47:07
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

热门讨论

热门文章

相关电子书

更多
消息队列kafka介绍 立即下载
消息队列 Kafka 版差异化特性 立即下载
Rocket MQ 使用排查指南 立即下载