為什么可用區不能選擇2個?
所有不同規格的Kafka集群實例都是3個Zookeeper節點,并且是通過Zookeeper集群進行管理配置的,Kafka依賴Zookeeper,如果Zookeeper集群出現問題,Kafka將無法正常運行。
一個Zookeeper集群正常運行,至少需要2個Zookeeper節點正常運行。
假設允許可用區選擇2個,可用區1有1個Zookeeper節點,可用區2有2個Zookeeper節點。如果可用區1故障,則集群實例能正常使用;如果可用區2故障,則集群不能正常使用。集群可用的場景只有50%,所以不支持選擇2個可用區
如何選擇Kafka實例的存儲空間?
存儲空間,主要是指用于存儲消息所需要的空間,選擇時包括選擇磁盤規格和大小,磁盤規格,當前支持“超高IO”和“高IO”兩種類型。
假設業務存儲數據保留天數內磁盤大小為100GB,則磁盤容量最少為100GB*副本數 + 預留磁盤大小100GB。Kafka集群中,每個Kafka節點會使用33G的磁盤作為日志和Zookeeper數據的存儲,因而實際可用存儲會小于購買存儲。
其中,副本數在創建Topic時可以選擇,默認為3副本存儲。
Kafka實例的超高IO和高IO如何選擇?
高IO:平均時延1-3ms,最大帶寬150MB/s(讀+寫)。
超高IO:平均時延1ms,最大帶寬350MB/s(讀+寫)。
建議選擇超高IO,云硬盤服務端壓力大場景,都不能達到最大帶寬,但是超高IO可達到的帶寬比高IO高很多。
如何選擇Kafka實例存儲容量閾值策略?
當前支持以下兩種策略:
生產受限策略
該策略場景下一旦磁盤使用達到容量閾值95%,會導致后續生產失敗,但保留了當前磁盤中的數據,直至數據自然老化(Kafka原有的老化機制,數據默認保留3天)。該場景適用于對數據不能丟的業務場景,但是會導致生產業務失敗。
自動刪除策略
該策略場景下磁盤使用到達容量閾值之后,以一個segment文件為單位(1GB),會自動刪除最早的segment文件,保證生產業務能繼續正常運行。該場景優先保障業務不中斷,數據可能會丟失。
以上兩種策略的需要基于業務對數據和業務的可靠性來進行選擇,只能作為極端場景下的一個種處理方式。建議業務購買時保證有充足的磁盤容量,避免磁盤的使用達到容量閾值。
Kafka實例的Topic數量是否有限制?
在Kafka使用過程中,Topic數量本身無限制,但Topic的分區數之和有上限,當達到上限后,會導致用戶無法繼續創建Topic。