微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Micronaut with rabbit mq 将消息从生产者发送到消费者,在消费者端它接受参数中的相同值

如何解决Micronaut with rabbit mq 将消息从生产者发送到消费者,在消费者端它接受参数中的相同值

在 Micronaut 最新版本中使用 rabbitMQ。在消费者上,两个参数都接受来自生产者的相同值,但是,我从生产者发送不同的值。

消费者的输出,因为categoryIdid的值相同

enter image description here

在生产者方面,我发送的不同值如下

  @RabbitProperty(name = "replyTo",value = "amq.rabbitmq.reply-to")
    @Binding(ConstantValues.COUNT_SUB_CATEGORY)
    Maybe<Long> Count(@MessageHeader String categoryId,String id);

enter image description here

categoryIdid 在生产者端具有不同的值

我不太确定这是什么错误

解决方法

很奇怪。我也在我的系统上复制了这个问题。而且,当使用弃用的 io.micronaut.messaging.annotation.Header 时,这个问题似乎会消失。

你能在你的代码上也试试这个,看看它是否有效吗?

您的新代码:

制作人:

@Binding(ConstantValues.COUNT_SUB_CATEGORY)
Maybe<Long> Count(@Header String categoryId,String id);

消费者:

@Queue(......)
Long count(@Header("categoryId") String categoryId,String id) {
    ......
}

使用 micronaut 版本 2.5.1、micronaut-rabbitmq 2.5.0、java 11 进行测试

,

此问题现已在此 https://github.com/micronaut-projects/micronaut-core/issues/5588

中得到解决

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。