kafka檢視Topic列表及消費狀態等常用命令

EdisonYao發表於2021-08-27

環境

  本文中的操作均基於kafka_1.3.3.0,且所有命令經過實際驗證。

常用工具

新建Topic

./kafka-topics --zookeeper 166.188.xx.xx --create --topic flink_source --partitions 1 --replication-factor 1

  • replication-factor: 指定副本數量

  • partitions:指定分割槽

刪除Topic

./kafka-topics --zookeeper 166.188.xx.xx --delete --topic flink_source

檢視所有Topic

./kafka-topics --zookeeper 166.188.xx.xx --list

檢視指定Topic詳情

./kafka-topics --zookeeper 166.188.xx.xx --topic flink_source --describe

檢視consumer group列表

  檢視consumer group列表有新、舊兩種命令,分別檢視新版(資訊儲存在broker中)consumer列表和老版

(資訊儲存在zookeeper中)consumer列表,因而需要區分指定bootstrap--server和zookeeper引數。

./kafka-consumer-groups --new-consumer --bootstrap-server 166.188.xx.xx:9092 --list

./kafka-consumer-groups --zookeeper 166.188.20.32:2181 --list

 檢視指定consumer group詳情

./kafka-consumer-groups --new-consumer --bootstrap-server 166.188.xx.xx:9092 --group logstash --describe

./kafka-consumer-groups --zookeeper 166.188.xx.xx:2181 --group console-consumer-12278 --describe

  這裡同樣需要根據新、舊版本的consumer,分別指定bootstrap-server與zookeeper引數。其中依次

展示group名稱、消費的topic名稱、partition id、consumer group最後一次提交的offset、最後提交的生

產訊息offset、消費offset與生產offset之間的差值、當前消費topic-partition的group成員id(不一定包含

hostname)。

補充知識

消費組列名解讀

  • TOPIC:消費者的topic名稱
  • PARTITION:分割槽數的名稱
  • CURRENT-OFFSET:consumer group最後一次提交的offset
  • LOG-END-OFFSET:最後提交的生產訊息offset
  • LAG:消費offset與生產offset之間的差值
  • CONSUMER-ID:消費者的ID編號,消費者組裡面最少要有一個消費者,當然也可以有多個消費者
  • HOST:消費者的主機IP地址
  • CLIENT-ID:連結的ID編號

關於offset

  kafka有個常用的設定是 auto.offset.reset ,該屬性指定了消費者在讀取一個沒有偏移量的分

區或者偏移量無效的情況下(因消費者長時間失效,包含偏移量的記錄已經過時井被刪除)該作何處理。

它的預設值是 latest,意思是說,在偏移量無效的情況下,消費者將從最新的記錄開始讀取資料(在消

費者啟動之後生成的記錄)。另一個值是 earliest ,意思是說,在偏移量無效的情況下,消費者將從起

始位置讀取分割槽的記錄。

  該屬性有以下幾個值:

  • earliest:當各分割槽下有已提交的offset時,從提交的offset開始消費;無提交的offset時,從頭開始消費
  • latest:當各分割槽下有已提交的offset時,從提交的offset開始消費;無提交的offset時,消費新產生的該分割槽下的資料
  • none:topic各分割槽都存在已提交的offset時,從offset後開始消費;只要有一個分割槽不存在已提交的offset,則丟擲異常

  這個設定只有當我們的消費者(或者消費者群組)在分割槽內找不到有效的offset時才會生效。

相關文章