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