(本文部份內容節選自華爲雲幫助中心的分佈式消息服務(DMS)服務的產品介紹)html
死信消息是什麼
死信消息是指沒法被正常消費的消息。分佈式消息服務DMS支持對消息進行異常處理。當消息進行屢次重複消費仍然失敗後,DMS會將該條消息轉存到死信隊列中,有效期爲72小時,用戶能夠根據須要對死信消息進行從新消費。消費死信消息時,只能消費該消費組產生的死信消息。全局有序的普通隊列的死信消息依然按照先入先出(FIFO)的順序存儲在死信隊列中。分佈式
如何消費死信消息
消費指定消費組產生的死信消息。可同時消費多條消息,每次消費的消息負載不超過512KB。僅NORMAL隊列和FIFO隊列能夠開啓死信消息,由於只有NORMAL隊列和FIFO隊列可消費死信消息。spa
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}htm
參數說明請參見下表:blog
如何確認已消費死信消息
在消費者消費死信消息期間,死信消息仍然停留在隊列中,但死信消息從被消費開始的30秒內不能被該消費組再次消費,若在這30秒內沒有被消費者確認消費,則DMS認爲死信消息未消費成功,將能夠被繼續消費。隊列
若是死信消息被確認消費成功,該死信消息將不能被該消費組再次消費,死信消息的保留時間爲72小時(除非消費組被刪除),72小時後會被刪除。圖片
消息批量消費確認時,必須嚴格按照消息消費的順序提交確認,DMS按順序斷定消息是否消費成功,若是某條消息未確認或消費失敗,則再也不繼續檢測,默認後續消息所有消費失敗。建議當對某一條消息處理失敗時,再也不須要繼續處理本批消息中的後續消息,直接對已正確處理的消息進行確認。get
注意,僅NORMAL隊列和FIFO隊列能夠開啓死信消息,由於只有NORMAL隊列和FIFO隊列可消費死信消息。產品
URI
POST /v1.0/{project_id}/queues/{queue_id}/groups/{consumer_group_id}/deadletters/ackit
以上就是對分佈式消息服務DMS如何實現死信消息的消費的介紹,想要了解更多,歡迎點擊分佈式消息服務DMS查看。