① kafka 副本設置大於節點數 有什麼問題
kafka 副本設置大於節點數,雖然是高可用的,但是該topic在有broker宕機時,可能發生無法使用的情況。topic一旦使用又不能輕易刪除重建,因此動態增加副本因子就成為最終的選擇。
原因分析:假設我們有3個kafka broker分別broker0、broker1、broker2.當我們創建的topic有3個分區partition時並且replication-factor為1,基本上一個broker上一個分區。當一個broker宕機了,該topic就無法使用了,因為三個分區只有兩個能用,當我們創建的topic有3個分區partition時並且replication-factor為2時,可能分區數據分布情況是
broker0, partiton0,partiton1,
broker1, partiton1,partiton2
broker2, partiton2,partiton0,
每個分區有一個副本。當其中一個broker宕機了,kafka集群還能完整湊出該topic的三個分區,例如當broker0宕機了,可以通過broker1和broker2組合出topic的三個分區。但是如果兩個broker宕機,那kakfa集群就無法湊出該topic的三個分區,例如當broker0和broker1宕機後,只有broker2上partation2和partation0可用,此時partation1處於無法使用的狀態。