0

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

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

在此处输入图像描述

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

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

在此处输入图像描述

和在生产者categoryIdid有不同的值

我做错了什么我不太确定。

4

2 回答 2

0

真奇怪。我也在我的系统上复制了这个问题。而且,当使用 deprecated 时,这个问题似乎消失了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 进行测试

于 2021-06-12T18:08:04.943 回答
0

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

于 2021-06-16T06:36:37.970 回答