戳⬆蓝字“读字节”关注我们哦
问题:
kafka如何选择合适的分区数?

回答:
kafka的分区数设置多少是一个讨论很久的话题了。
首先需要理解kafka的分区机制,分区的本质就是把很大的一组队列数据进行拆分成多组队列,形成写入端和消费端的分流和并行。分流和并行就能有效提升数据流读写的吞吐力,并且让队列中的数据能及时得到处理。
不过无止尽地增加分区,实现巨多的分流和并行并不见得能带来更大的吞吐和实时性,这需要根据自身的硬基础来决定。
一般来说如果有3个broker,那么至少就应该有3个分区,最小化保证每个broker都能参与到队列分流并行过程中。不过根据数据量的写入量,磁盘io的消耗占比,网络带宽的承载能力,我们可以适当增加每个broker的分区数,可以用每台broker分区最小数的倍数进行设置并测试吞吐,例如3,6,9,12...
但总之不应调得过多,因为过多的分区数,会带来资源管理上的消耗,清除日志时间变长,集群broker故障后分区leader重选时间变长,客户端消费端线程数需求增加,甚至导致连接所需的socket消耗增加。
希望我的回答对你能有所帮助,总之kafka的分区规划是性能与可靠性中找到一种平衡,极端的分区数不仅会触碰集群不稳定的雷,而且对提升性能无任何效果。因此任何的分区数字建议都是参考,对于参数调优只有现场经验和实际测试结果才是衡量问题的唯一标准。
如果觉得写得不错,那就点个赞或者“在看”吧,多谢阅读。
文章均为“读字节”原创,转载务必注明来源。
点这里👇关注我
文章转载自读字节,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




