1. 程式人生 > >關於kafka更改消費者對應分組下的offset值

關於kafka更改消費者對應分組下的offset值

解析 驗證 zkcli 四種 參數解析 fse 其他 bootstra test

kafka的offset保存位置分為兩種情況 0.9.0.0版本之前默認保存在zookeeper當中
0.9.0.0版本之後保存在broker對應的topic當中

1.如何辨別你啟用的consumer的offset保存位置
進入zookeeper的命令行當中 zkCli.sh localhost:2181 用 ls / 查看目錄
如果你在代碼中定義的group id 沒有在 /consumers 這個文件夾中,代表offset保存在broker的topic中
前提是consumer確實已經創建並啟動
如果group ID 在/consumers 目錄下存在則 offset的保存位置是 /consumers/{group}/offsets/{topic}/{partition}

反之 offset的保存位置則是 /broker/topic/__consumer_offsets 當中

2.如何查看自己消費者分組 對應的 topic 的offset
第一種方式
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --topic test-topic --zookeeper zookeeper:2181 --group group名字
第二種方式
kafka-consumer-offset-checker --zookeeper localhost :2181/kafka --group test-consumer-group --topic test

第三種方式
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --topic test --zookeeper 10.0.10.10:2181 --group test-consumer-group
第四種方式
bin/kafka-consumer-groups.sh --bootstrap-server dbnode4:9092,dbnode5:9092,dbnode6:9092 --group test-consumer-group --describe

3.更改指定消費者分組對應topic的offset
第一種情況offset信息保存在topic中

bin/kafka-consumer-groups.sh --bootstrap-server dbnode4:9092,dbnode5:9092,dbnode6:9092 --group test-consumer-group --topic test --execute --reset-offsets --to-offset 10000
參數解析: --bootstrap-server 代表你的offset保存在topic中
--group 代表你的消費者分組
--topic 代表你消費的主題
--execute 代表支持復位偏移
--reset-offsets 代表要進行偏移操作
--to-offset 代表你要偏移到哪個位置 是long類型數值,只能比前面查詢出來的小
還有其他的--to- ** 方式可以自己驗證 本人驗證過--to-datetime 沒有成功

第二種方式offset信息保存在zookeeper當中
bin/kafka-consumer-groups.sh --zookeeper z1:2181,z2:2181,z3:2181 --group test-consumer-group --topic test --execute --reset-offsets --to-offset 10000
--zookeeper 和 --bootstrap-server 只能選一種方式

關於kafka更改消費者對應分組下的offset值