1.kafka集群单个节点磁盘挂载的越多越好
业界Kafka的标准使用方式是作为临时缓存使用。因此,很多人会误以为,kafka的每个节点只要存储够大就行,不用关心其他的指标。官方并不建议kafka单节点关在多个磁盘,因为磁盘越多,表示需要更多的处理线程去管理(num.io.thread决定),CPU的压力将非常大,如果磁盘数大于了CPU逻辑核数,kafka的CPU将因为非常繁忙导致数据落盘失败,从而影响业务。
建议:
- 建议每个节点挂盘数,满足每台机器最大挂盘数量 <= processor(CPU逻辑核数) / 2。
- 最优策略为每个节点使用raid5或者raid10挂载数据目录,每个raid5或者raid10的逻辑盘不超过8块。
2.把kafka当做数据库使用
很多人认为,如果数据重要,需要把kafka中的数据保存周期延长到很大(例如:1年),例如。Kafka对于数据目录中的每个segment文件会有一个操作句柄对应,如果数据保存周期过长,会导致操作句柄使用率增加,如果句柄数无限制增加并且到达上限后会导致kafka服务异常。
正常情况下,业务侧应当根据集群中的磁盘总容量来评估数据的保留时间。如果,集群中的业务种类多、数据量大。于此同时又不关心数据量的大小,很容易造成磁盘容量不足。
**建议:**业务侧评估好数据量的大小,调整合适的保留时间。一般情况下,建议使用7天即可。
3.分区数越多越好
Kafka增加分区数