設定消費者properties的兩個參數
consumer.group.id
properties.setProperty("auto.offset.reset", "earliest”) // latest
注意:
隻要不更改group.id,每次重新消費kafka,都是從上次消費結束的地方繼續開始,不論"auto.offset.reset”屬性設定的是什麼
場景一:Kafka上在實時被灌入資料,但kafka上已經積累了兩天的資料,如何從最新的offset開始消費?
(最新指相對于目前系統時間最新)
1.将group.id換成新的名字(相當于加入新的消費組)
2.網上文章寫還要設定 properties.setProperty("auto.offset.reset", "latest”)
實驗發現即使不設定這個,隻要group.id是全新的,就會從最新的的offset開始消費
場景二:kafka在實時在灌入資料,kafka上已經積累了兩天的資料,如何從兩天前最開始的位置消費?
1.将group.id換成新的名字
2.properties.setProperty("auto.offset.reset", "earliest”)
場景三:不更改group.id,隻是添加了properties.setProperty("auto.offset.reset", "earliest”),consumer會從兩天前最開始的位置消費嗎?
不會,隻要不更改消費組,隻會從上次消費結束的地方繼續消費
場景四:不更改group.id,隻是添加了properties.setProperty("auto.offset.reset", "latest”),consumer會從距離現在最近的位置消費嗎?
應用:
正式打包上線前應該使用新的group.id,以便于從kafka最新的位置開始消費
隻要将group.id換成全新的,不論"auto.offset.reset”是否設定,設定成什麼,都會從最新的位置開始消費