1. 程式人生 > >kafka的學習記錄——kafka消費組

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,用於存放消費組的消費資訊。位置如

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

  第一、得到這個消費者的 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 執行真正的位移調整