|
该版本仍在开发中,尚未被视为稳定。对于最新稳定版本,请使用 spring-cloud-stream 5.0.0! |
错误信道
从版本1.3开始,绑定器无条件向每个消费者目的地的错误通道发送异常,并且可以配置为向错误通道发送异步生产者发送失败。 更多信息请参见“错误处理”。
RabbitMQ 有两种发送失败类型:
-
回复消息,
-
负面致谢,出版商确认。
后者较为罕见。
根据RabbitMQ文档,“[nack]只有在负责队列的Erlang进程发生内部错误时才会被交付。”
如果你发布到有界队列,也可能收到负面确认拒绝-发布队列溢出行为。
除了启用生产者错误通道(如“错误处理”中所述),RabbitMQ 绑定器仅在连接工厂配置适当的情况下向通道发送消息,具体如下:
-
ccf.set出版者确认(真实); -
ccf.set出版商返回(真实);
在使用 Spring Boot 配置连接工厂时,请设置以下属性:
-
Spring。rabbitmq.publisher-confirms -
Spring.兔子问答。出版者-归来
有效载荷错误消息对于返回消息是返回AmqpMessageException具有以下性质:
-
失败消息:春季信息留言<?>但那份文件未能发送。 -
amqpMessage:原始的春季AMQP消息. -
回复代码:一个整数值表示失败原因(例如,312 - 无路由)。 -
回复正文:一个表示失败原因的文本值(例如,NO_ROUTE). -
交换:该信息发布的交流。 -
路由键:消息发布时使用的路由密钥。
另请参阅发布确认,了解接收返回消息的替代机制。
对于负向确认,有效载荷为NackedAmqpMessageException具有以下性质:
-
失败消息:春季信息留言<?>但那份文件未能发送。 -
纳克理性:一个原因(如果有的话——您可能需要查看经纪人日志以获取更多信息)。
这些异常(例如发送到死信队列)没有自动处理。 你可以用自己的 Spring 集成流程来调用这些例外。