当前位置:   article > 正文

kafka分区数过多引发的弊端_kafka topic分区对性能的影响

kafka topic分区对性能的影响

Kafka的Topic是由多个Partition组成,理论上一个Topic的分区越多,集群所能达到的吞吐量就越大。

分区不是越多越好

1、客户端/服务端所需要的内存就越多

由于Kafka支持批量消息发送,它会为每个分区缓存消息,当消息的大小达到batch.size后,就会将消息打包发送,如果分区数量很大,就会占用producer服务器一部分内存,consumer端由于分区数量很多,就会创建很多线程去消费分区消息,频繁的线程切换也会降低消费者服务器性能。

2、文件句柄的开销

每个分区消息在broker底层文件系统是由base_offset.log和batch_offset.index存储,如果分区数量越来越多所保持打开状态的文件句柄数就会越来越多,最终有可能突破操作系统限制,影响服务器性能。

3、降低可用性

Kafka通过多副本机制保证高可用,如果leader分区挂掉,那么所需要选举的时间就会越长,在选举的时候是不可用状态。

4、影响再均衡效率

消费组消费的增减都会出现再均衡,当分区数量越多,再均衡耗时就会越长,同样也是影响Kafka的消费性能

如何确定合理的分区数量呢

根据业务经验估算出来想要到达的目标吞吐量Tt,那么partition=Tt/max(Tp,Tc)

Tp:producer的吞吐量

Tc:consumer的吞吐量

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/715371
推荐阅读
相关标签
  

闽ICP备14008679号