W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
從版本1.3開始,綁定程序無條件地將異常發(fā)送到每個使用者目標的錯誤通道,并且還可以配置為將異步生產者發(fā)送失敗消息發(fā)送到錯誤通道。
RabbitMQ有兩種類型的發(fā)送失敗:
后者很少見。根據RabbitMQ文檔,“只有在負責隊列的Erlang進程中發(fā)生內部錯誤時,才會傳遞[nack]。”
除了啟用生產者錯誤通道之外,RabbitMQ綁定程序僅在正確配置連接工廠的情況下,才將消息發(fā)送到通道,如下所示:
ccf.setPublisherConfirms(true);
ccf.setPublisherReturns(true);
將Spring Boot配置用于連接工廠時,請設置以下屬性:
spring.rabbitmq.publisher-confirms
spring.rabbitmq.publisher-returns
用于返回消息的ErrorMessage
的有效負載是具有以下屬性的ReturnedAmqpMessageException
:
failedMessage
:發(fā)送失敗的Spring消息Message<?>
。amqpMessage
:原始spring-amqp Message
。replyCode
:指示失敗原因的整數值(例如312-無路由)。replyText
:指示失敗原因的文本值(例如,NO_ROUTE
)。exchange
:發(fā)布消息的交易所。routingKey
:發(fā)布消息時使用的路由密鑰。對于否定確認的確認,有效負載為NackedAmqpMessageException
,具有以下屬性:
failedMessage
:發(fā)送失敗Spring消息Message<?>
。nackReason
:原因(如果有,您可能需要檢查代理日志以獲取更多信息)。沒有對這些異常的自動處理(例如發(fā)送到死信隊列)。您可以使用自己的Spring Integration流使用這些異常。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: