小编Joh*_*ort的帖子

如何强制 RabbitMQ 代理 NACK 消息以进行测试?

我正在通过 Spring AMQP 使用 RabbitMQ 进行 Spring Boot 项目。我们希望能够在消息发布为 NACK 时测试我们的应用程序的行为(特别是当 的ack参数PublisherConfirmCallback#confirm为 时false)。然而,我们很难在集成测试中设置这个场景(也就是说,运行应用程序,而不是单元测试)。

需要明确的是,我们正在围绕发布商确认而不是消费者确认进行测试。

我们知道您可以使用 RabbitTemplate 的execute方法访问通道,但是我们的 RabbitMQ 会自动确认,因此在执行通道回调时消息已经消失了。我们认为我们可以在运行时禁用自动确认(以免中断测试套件)或简单地阻塞通道并在测试中手动接收消息,但我们无法弄清楚如何做到这些。但实际上,任何在测试期间导致 NACK 的方法都会很棒。

tl;dr 如何从客户端代码获取消息

java spring amqp rabbitmq

8
推荐指数
1
解决办法
1210
查看次数

标签 统计

amqp ×1

java ×1

rabbitmq ×1

spring ×1