kafka的學習記錄——kafka消費組
阿新 • • 發佈:2018-11-11
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
#確定作用域
--all-topics (為consumer group下所有topic的所有分割槽調整位移)
#位移重設策略
--to-earliest 把位移調整到分割槽當前最小位移
#確定執行方案
--execute 執行真正的位移調整