Rabbitmq SpringCloudStream未引发异常

Rabbitmq SpringCloudStream未引发异常,rabbitmq,spring-cloud,spring-cloud-stream,Rabbitmq,Spring Cloud,Spring Cloud Stream,我将SpringCloudStream与rabbitMQ一起使用。 我试图通过在运行时删除队列并将消息发布到已删除的队列来执行否定测试 source.queue2Source().send(MessageBuilder.withPayload(queue4DTO).build()); 我正在侦听来自队列1的消息,并将消息发布到队列2(已删除的一个)。我原以为上面的代码会抛出异常,但事实并非如此。甚至从队列1读取的消息也已确认。我在队列1和队列2上有一个死信队列,但消息没有进入dlq。这是因为您

我将SpringCloudStream与rabbitMQ一起使用。 我试图通过在运行时删除队列并将消息发布到已删除的队列来执行否定测试

source.queue2Source().send(MessageBuilder.withPayload(queue4DTO).build());

我正在侦听来自队列1的消息,并将消息发布到队列2(已删除的一个)。我原以为上面的代码会抛出异常,但事实并非如此。甚至从队列1读取的消息也已确认。我在队列1和队列2上有一个死信队列,但消息没有进入dlq。

这是因为您正在将消息发送到
源定义的
频道。该通道实际上是存在的,并且通过AMQPutBangChhannAdvor桥接到一个默认情况下会丢失无法传递的消息的交换。

是否意味着没有办法捕获这种错误?RabBMQ不认为默认情况下这种情况(丢失队列)是致命的;它默默地丢弃这样的信息。如果将producer属性设置为true,则将消息路由到队列的失败将发布到错误通道。@GaryRussell是错误通道在rabbitMQ中创建一个新队列,如DLQ?否;这是一个可以订阅以获取错误消息的频道。