設置消費者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”是否設置,設置成什么,都會從最新的位置開始消費
轉自:https://blog.csdn.net/zgc625238677/article/details/103408123