關於spoutConfig中maxOffsetBehind與startOffsetTime

startOffsetTime:

有兩個值,分別是kafka.api.OffsetRequest.EarliestTime()和kafka.api.OffsetRequest.LatestTime()。分別表示從最早的offset讀取與最近點offset讀取。要注意的是這個參數只有設置啓動的第一次消費有效,後面的消費是從zookeeper中記錄的offset開始的。

maxOffsetBehind:

判斷消費進度與目標進度相差多少,相差超過設定值會捨棄之前的記錄。舉個例子。此值設爲5。startOffsetTime參數設爲LatestTime,也就是消費最新的。這時,如果zookeeper中的offset進度爲10,已消費到的offset進度如果爲7.(也就是還有3個沒有消費)。這時3<5,那麼捨棄動作不會觸發,啓動時還會收到未消費的3個消息。如果已消費到的offset進度爲3,(也就是還有7個沒有被消費)。這時7>5,會觸發捨棄動作。但是要注意的是,捨棄是全部捨棄,也就是7個一個都不會收到,直接等同於執行了LatestTime這個操作。啓動後會發現沒有收到任何消息。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章