前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring环境下获取CorrelationData,msgId的使用方法

Spring环境下获取CorrelationData,msgId的使用方法

作者头像
喜欢天文的pony站长
发布2022-01-11 08:02:54
8460
发布2022-01-11 08:02:54
举报
文章被收录于专栏:RabbitMQ实战RabbitMQ实战

通常情况下,对于投递到RabbitMQ的消息,我们一般都会指定一个唯一的msgId来标识一条消息,跟踪这条消息的状态。通常情况下,我们的代码都是这样的:

  • 生产者端:
  • 消费者端:

但是这样的代码的结果是:message.getMessageProperties().getCorrelationIdString()拿到的是null, (String) headers.get("spring_listener_return_correlation");拿到的不是我们在生产者set的值,更像是spring框架自动生成的用于标记被rabbitMQ退回的消息。(这个结果可能跟springboot的版本有关系)

现提出另外一种解决方案:自定义header

  • 生产者
  • 消费者
  • 进行测试

并且这个ID似乎在同一个批次里面是一样的


总结:之所以会发现这个问题,是因为在查看日志监控消息流转的过程中发现,使用message.getMessageProperties().getCorrelationIdString()的消费者,根本拿不到生产者设置的id。然后百度。

改成使用header,spring_listener_return_correlation的方式,但是发现取到的值不是我们设置的。所以最后就通过自定义header的方式,传递这个msgId。

所以百度的代码在使用的过程中要注意查看程序的运行状态是否符合预期。 这个代码的结果可能跟Springboot 的版本有关系,我们公司使用的Springboot版本非常低,所以具体情况具体分析~ 这边只是提供一个思路。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 喜欢天文 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档