rocketmq實現延遲隊列精確到秒級實現方案3-時間輪和秒級文件實現
時間輪和秒級文件實現原理圖
這種方案比較簡單實現,通過秒級時間,建立對應的文件夾,只要相同的時間超時的消息,就在同一個目錄,通過msgid保證文件不重複,
等到了時間後,就掃描對應的文件夾的文件,發送到隊列中,寫入commitlog即可。
當然了,我們可以先緩衝一定時間的文件夾文件,這樣效率高一些。
我也開發這種方案的實現(簡易版本),在測試環境跑了2周,(測試了每秒5000條延時消息)暫時沒有問題,說明對於延遲消息不大的情況下,
這個方案最簡單,也是不錯的選擇