記憶早退
Brokers Spread:看作broker使用率,如kafka集群9個broker,某topic有7個partition,則broker spread: 7 / 9 = 77%
Brokers Skew:partition是否存在傾斜,如kafka集群9個broker,某topic有18個partition,正常每個broker應該2個partition。若其中有3個broker上的partition數>2,則broker skew: 3 / 9 = 33%
Brokers Leader Skew:leader partition是否存在傾斜,如kafka集群9個broker,某topic14個partition,則正常每個broker有2個leader partition。若其中一個broker有0個leader partition,一個有4個leader partition,則broker leader skew: (4 - 2) / 14 = 14%
由於kafka所有讀寫都在leader上進行, broker leader skew會導致不同broker的讀寫負載不均衡,配置參數 auto.leader.rebalance.enable=true 可以使kafka每5min自動做一次leader的rebalance,消除這個問題。
另一個比較關心的問題是Lag為什么有時是負數?
Lag代表consumer的消費能力,計算公式為Lag = Consumer Offset - LogSize,Kafka Manager先從zk獲取LogSize,再從kafka __consumer_offsets topic讀取Offset。兩步操作存在一個時間gap,因此吞吐很大的topic上會出現Offset > LogSize的情況。導致Lag負數。
如下圖: