天天看點

kafka的groupid

設定消費者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”是否設定,設定成什麼,都會從最新的位置開始消費