消息回溯


消息隊列 CMQ 消息回溯功能 - 消息隊列(Queue)模型 - 文檔中心 - 騰訊雲 https://cloud.tencent.com/document/product/406/8129

 

最近更新時間:2020-07-31 17:41:51

 

CMQ 提供類似於 Kafka 的消息回溯能力。使用消息回溯,您可在業務成功消費並刪除消息后重新消費已刪除的消息。此功能便於核心金融業務做業務對賬、業務系統重試等操作。

 

 

如上圖,消息的生命周期為藍色框內的片段。開啟消息回溯能力后,已被消費者消費且確認刪除的消息會進入消息可回溯區域,CMQ 后端還會保存該信息。但消息超過 Queue 的消息生命周期時(假設為1天),達到生命周期后,該消息會自動刪除,不可回溯。具體產品邏輯如下:

  • 開啟:若未開啟消息回溯能力,則消費者已消費且確認刪除的消息會立即刪除。開啟該功能時,須指定回溯的可回溯周期,可回溯周期的范圍必須小於等於消息的生命周期。

  • 里程碑:根據上一條策略,開啟消息回溯后,隨着消費者的不斷消費及刪除,可回溯的消息數量會不斷增多。

  • 關閉:關閉消息回溯后,消息可回溯區域的消息將被立即刪除,且不可回溯。

  • 隊列屬性:消息回溯是 Queue 的屬性,可在創建時或在修改配置處進行設置。指定回溯(rewind)的時間點后,所有消費者都會從該時間點的消息往后消費。

  • 計費:開啟消息回溯能力后,可回溯部分的消息會產生一定的堆積費用,單位價格與消息堆積的費用共同計算。

  • 指定回溯時間點:消費者發起回溯消費,需要指定 Queue Name 及具體的回溯時間。且從最遠的時間點,往回回溯。時間為 key,不可逆向消費。 如圖所示,只能從 timeA 到 timeB/timeC 消費,不支持反向消費。

  • 指定回溯時間范圍:0 - 15天,控制台開啟該能力后,刪除的消息才可被回溯。建議關鍵應用,長期開啟消息回溯能力。且消息回溯周期,與消息生命周期設成一致。

  • 不可指定堆積中的消息回溯:若消息仍在堆積中,未被消費,則無法指定某一個具體的位置進行消費。

可回溯范圍

最大可回溯時間點 = 當前時間 - 設置的可回溯時長。消息生產時間在這個值之前的不可回溯,之后的可回溯,如下圖所示:

 

 

時間軸

消息回溯 以消息生產的時間為排序標准,與被刪除的先后無關。如下圖所示:

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM