Kafka效能測試方法
以下會介紹利用Kafka自帶的效能測試指令碼及KafkaManager測試Kafka的效能,以及如何使用Kafka Manager監控Kafka的工作狀態。
Kafka效能測試指令碼
$KAFKA_HOME/bin/kafka-producer-perf-test.sh 該指令碼被設計用於測試Kafka Producer的效能,主要輸出4項指標,總共傳送訊息量(以MB為單位),每秒傳送訊息量(MB/second),傳送訊息總數,每秒傳送訊息數(records/second)。除了將測試結果輸出到標準輸出外,該指令碼還提供CSV Reporter,即將結果以CSV檔案的形式儲存,便於在其它分析工具中使用該測試結果
$KAFKA_HOME/bin/kafka-consumer-perf-test.sh 該指令碼用於測試Kafka Consumer的效能,測試指標與Producer效能測試指令碼一樣
Kafka Metrics
Kafka使用Yammer Metrics來報告服務端和客戶端的Metric資訊。YammerMetrics 3.1.0提供6種形式的Metrics收集——Meters,Gauges,Counters,Histograms,Timers,HealthChecks。與此同時,YammerMetrics將Metric的收集與報告(或者說釋出)分離,可以根據需要自由組合。目前它支援的Reporter有Console Reporter,JMXReporter,HTTP Reporter,CSV Reporter,SLF4J Reporter,Ganglia Reporter,GraphiteReporter。因此,Kafka也支援通過以上幾種Reporter輸出其Metrics資訊。
使用JConsole檢視單伺服器Metrics
使用JConsole通過JMX,是在不安裝其它工具(既然已經安裝了Kafka,就肯定安裝了Java,而JConsole是Java自帶的工具)的情況下檢視Kafka伺服器Metrics的最簡單最方便的方法之一。
首先必須通過為環境變數JMX_PORT設定有效值來啟用Kafka的JMXReporter。如exportJMX_PORT=19797。然後即可使用 JConsole通過上面設定的埠來訪問某一臺Kafka伺服器來檢視其Metrics資訊。
使用JConsole的一個好處是不用安裝額外的工具,缺點很明顯,資料展示不夠直觀,資料組織形式不友好,更重要的是不能同時監控整個叢集的Metrics。
通過Kafka Manager檢視整個叢集的Metrics
Kafka Manager是Yahoo開源的Kafka管理工具。它支援如下功能
管理多個叢集
方便檢視叢集狀態
執行prefered replica election
批量為多個Topic生成並執行Partition分配方案
建立Topic
刪除Topic(只支援0.8.2及以上版本,同時要求在Broker中將delete.topic.enable設定為true)
為已有Topic新增Partition
更新Topic配置
在Broker JMX Reporter開啟的前提下,輪詢Broker級別和Topic級別的Metrics
監控Consumer Group及其消費狀態
支援新增和檢視LogKafka