2017-10-10 175 views
0

我想在短時間內爲特定主題啓動kafka消費者。具體而言,我希望消費者在產生消息的特定時間延遲之後開始消費來自主題的消息。誰能說有沒有任何財產或卡夫卡選項來啓用它。提前致謝。Apache kafka - 消費者延遲選項

+0

只要製片人發來'Kafka'是不言而喻的消息到卡夫卡日誌,併成爲可供消費者消費它。我在卡夫卡文檔中沒有看到任何屬性,它讓您可以選擇延遲每條消息的使用情況(如果有消息,我會很樂意進一步瞭解它)。但是,您可以控制消息的消耗,因此與生產者相比,您可以稍微晚點啓動消費者。 – Explorer

回答

0

我們爲spark-streaming做了同樣的事情。我希望,這種方法也適合你。

這個想法很簡單 - 使用Thread.sleep。當您收到來自kafka的新消息時,您可以計算處理它之前需要多長時間睡眠。

僞代碼的想法:

message = getNextMessageFromKafka() 
sleepMs = Math.max(0, currentTime - message.timestamp) 
Thread.sleep(speepMs) 
do processing 
+0

這個想法非常適合這個問題,我覺得如果每隔1ms就會有一些數據和消費者使用這個主題並且每個1ms的數據都會睡眠,所以這可能是正確的,而另一個處理邏輯不會被稱爲ryte !!!! –