1. 程式人生 > >分布式消息服務DMS如何實現死信消息的消費

分布式消息服務DMS如何實現死信消息的消費

消息處理 了解 ado oss 異常 存儲 點擊 ack ces

本文部分內容節選自華為雲幫助中心的分布式消息服務(DMS)服務的產品介紹


死信消息是什麽
死信消息是指無法被正常消費的消息。分布式消息服務DMS支持對消息進行異常處理。當消息進行多次重復消費仍然失敗後,DMS會將該條消息轉存到死信隊列中,有效期為72小時,用戶可以根據需要對死信消息進行重新消費。消費死信消息時,只能消費該消費組產生的死信消息。全局有序的普通隊列的死信消息依然按照先入先出(FIFO)的順序存儲在死信隊列中。


如何消費死信消息
消費指定消費組產生的死信消息。可同時消費多條消息,每次消費的消息負載不超過512KB。僅NORMAL隊列和FIFO隊列可以開啟死信消息,因為只有NORMAL隊列和FIFO隊列可消費死信消息。


URI

GET /v1.0/{project_id}/queues/{queue_id}/groups/{consumer_group_id}/deadletters?max_msgs={max_msgs}&time_wait={time_wait}&ack_wait={ack_wait}


參數說明請參見下表:
技術分享圖片



技術分享圖片



技術分享圖片


如何確認已消費死信消息
在消費者消費死信消息期間,死信消息仍然停留在隊列中,但死信消息從被消費開始的30秒內不能被該消費組再次消費,若在這30秒內沒有被消費者確認消費,則DMS認為死信消息未消費成功,將可以被繼續消費。


如果死信消息被確認消費成功,該死信消息將不能被該消費組再次消費,死信消息的保留時間為72小時(除非消費組被刪除),72小時後會被刪除。



消息批量消費確認時,必須嚴格按照消息消費的順序提交確認,DMS按順序判定消息是否消費成功,如果某條消息未確認或消費失敗,則不再繼續檢測,默認後續消息全部消費失敗。建議當對某一條消息處理失敗時,不再需要繼續處理本批消息中的後續消息,直接對已正確處理的消息進行確認。


註意,僅NORMAL隊列和FIFO隊列可以開啟死信消息,因為只有NORMAL隊列和FIFO隊列可消費死信消息。

URI

POST /v1.0/{project_id}/queues/{queue_id}/groups/{consumer_group_id}/deadletters/ack



技術分享圖片


技術分享圖片


技術分享圖片


技術分享圖片


以上就是對分布式消息服務DMS如何實現死信消息的消費的介紹,想要了解更多,歡迎點擊分布式消息服務DMS查看。

分布式消息服務DMS如何實現死信消息的消費