kafka节点数规划
按磁盘容量规划节点数
Kafka的数据存放在本地磁盘,建议使用SAS盘,提供较高磁盘IO,以提高Kafka吞吐量。在本规划基于的硬件规格下,单节点平均吞吐量参考值为读300MB/s,写150MB/s。
数据输入
数据输入吞吐量
单节点磁盘容量
数据保留时间
数据复本数
单个消费者的峰值
单个生产者的峰值
磁盘实际容量
由于磁盘存在1M = 1024 KB or 1M = 1000KB的算法不同,一般来说,
磁盘实际可用容量 = 磁盘标注容量 * 0.9
举例说明,磁盘标注容量为600G,实际容量=600 * 0.9 = 540G。
数据副本数
副本数直接决定了消息的膨胀率,如:一条写入到topic1中的消息大小是1M,topic1的副本数是3,那么最终存入broker的消息大小就是3M。
分区数要求
在Kafka集群中,分区越多吞吐量越高,但是分区过多也存在潜在影响,例如文件句柄增加、不可用性增加
(如:某个节点故障后,部分Partition重选Leader后时间窗口会比较大)及端到端时延增加等。
建议:
单个Partition的磁盘占用最大不超过100GB;单节点上Partition数目不超过3000;整个集群的分区总数不超过10000。