问题描述
在 Micronaut 最新版本中使用 rabbitMQ。在消费者上,两个参数都接受来自生产者的相同值,但是,我从生产者发送不同的值。
消费者的输出,因为categoryId
和id
的值相同
在生产者方面,我发送的不同值如下
@RabbitProperty(name = "replyTo",value = "amq.rabbitmq.reply-to")
@Binding(ConstantValues.COUNT_SUB_CATEGORY)
Maybe<Long> Count(@MessageHeader String categoryId,String id);
categoryId
和 id
在生产者端具有不同的值
我不太确定这是什么错误。
解决方法
很奇怪。我也在我的系统上复制了这个问题。而且,当使用弃用的 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
中得到解决