在我的Storm拓撲結構中,在處理流時,我想延遲處理一些消息,直到某些未來的時間點。這樣做有什麼合理的選擇?Storm中的延遲隊列/消息處理
到目前爲止,我曾想過以下幾點:
- 使用Java的
Thread.sleep
。 (然而,根據一些討論,這不是有效地利用雨水資源,建議這樣做。) - 使用延遲隊列...
- 尤其可以嘗試java.util.concurrent.DelayQueue。
- 是否有其他的實現值得嘗試?
- 風暴是否有一些API用於延遲我忽略的消息?
- 是否ZeroMQ提供延遲消息傳遞API,Storm(如果已修改)可以利用?
你能告訴你爲什麼要這樣做嗎?如果你還沒有準備好處理這些東西,你爲什麼要把它傳遞給風暴拓撲? –
我的第一個迴應:爲什麼問爲什麼?瞭解或回答問題很重要嗎?爲什麼延遲(或重新調度)元組有很多原因。我的元組處理並不全是關於數據的純功能轉換。就我而言,處理元組涉及捕獲系統外部的某些事情的狀態並與其他流集成。由於它隨着時間的推移而變化,我希望以受控的時間間隔捕捉該狀態。一個這樣的要求是不經常消耗外部資源。 –