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

中得到解决