天天看點

kafka的學習記錄——kafka消費組

1、kafka消費執行個體的工作過程,從啟動開始。(待補充)

2、auto.offset.reset屬性:預設值為 latest

earliest 

當各分區下有已送出的offset時,從送出的offset開始消費;無送出的offset時,從頭開始消費 

latest 

當各分區下有已送出的offset時,從送出的offset開始消費;無送出的offset時,消費新産生的該分區下的資料 

none 

topic各分區都存在已送出的offset時,從offset後開始消費;隻要有一個分區不存在已送出的offset,則抛出異常

3、獲得消費組的offset

      kafka0.9以後的版本,group.id的消費資訊不再存儲在zookeeper上。kafka會建立立一個topic(__consumer_offsets),預設分區為50,用于存放消費組的消費資訊。位置如

kafka的學習記錄——kafka消費組

如何獲得某個消費組的消費情況。分如下幾步:

  第一、得到這個消費者的 group.id.

  第二、計算得到分區數值,例如:Math.abs("console-consumer-46965".hashCode()) % 50 = 11。

  第三、在 topic為 __consumer_offsets 的分區 中得到消費者offset的資料。指令如:

bin/kafka-simple-consumer-shell.sh --topic __consumer_offsets --partition 11 --broker-list localhost:9092,localhost:9093,localhost:9094 --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter"      

4、kafka消費組位移重設

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test-group --reset-offsets 

#确定作用域

--all-topics (為consumer group下所有topic的所有分區調整位移)

#位移重設政策

--to-earliest  把位移調整到分區目前最小位移

#确定執行方案

--execute 執行真正的位移調整

繼續閱讀