Kafka怎样选取优质公道的分区数
我们常常谋面对这样的题目,在确定某个topic下应该配置几多分区数,偶然并不知道应该怎样配置,怎样评估等。可能别人问你当前kafka集群中,详细的营业topic平分区数是几多,是怎样知道必要几多分区或怎么选择较量得当的分区数。 1.团结营业场景和非营业前提 那么我们应该怎样选择吻合的分区数呢? 详细的营业详细说明。 可是前期我们可以按照这些前提:现实营业场景(动静总量,动静出产或斲丧频率,要求的吞吐量等)、软件前提、硬件前提、负载环境等,举办大抵的评估我们可以配置topic几多分区数。 2.行使压测器材,得出最佳分区数 kafka官方也提供了剧本利便我们针对我们的kafka集群做测试,我们可以测试当条件供的硬件前提举办压测,得出当前呆板情形到底能支持几多分区数,从而到达只管最优的方案。 出产者机能测试剧本:kafka-producer-perf-test.sh 斲丧者机能测试剧本:kafka-consumer-perf-test.sh 配置好topic的某个分区数,之后我们可以选择差异的参数:好比动静发送总量、单条动静巨细、吞吐量、acks、斲丧线程数等等,这样压测之后就能得出一份测试陈诉,陈诉包括的数据有:50%/90%/95%/99%的动静处理赏罚耗时、均匀处理赏罚耗时、每秒动静发送吞吐量、每秒拉取的动静的字节巨细/动静数目、斲丧总数、再均衡时刻、按动静计数/动静巨细计较的吞吐量等等。 吻合的增进分区数是可以进步吞吐量,但高出必然的阈值之后,吞吐量也会随之降落。假如出产上对吞吐量有必然的要求,可以在出产呆板硬件前提下举办压测,得出得当你的最优分区数。 3.吞吐量越高并不会一向与分区数有关 对kafka出产者而言,数据写入每个分区是可以并行举办的。对kafka斲丧者而言,每个分区只能给一个斲丧者线程斲丧,以是斲丧组的斲丧并行度依靠于分区数。这样看来仿佛分区数越多,理论上吞吐量应该越高。 可是,事拭魅真的是这样吗? 动静中间件kafka的吞吐量并不可是跟分区有关。 动静写入(出产)的吞吐量与这些有关:动静巨细、动静压缩方法、动静发送方法(同步或异步)、动静确认范例acks、副本因子等。 同样,动静斲丧的吞吐量与营业逻辑斲丧速率等有关。 4.分区数与操纵体系有关 分区数也不能无穷制的增进,由于其占用了文件描写符,历程可支配的文件描写符是有限的。 一样平常假如要配置较量大的分区数,要出格寄望是否高出体系的最的大描写符文件。固然可以通过改体系设置,可是应只管停止这种,事实文件句柄也是有开销的。 5.留意动静写入分区计策 我们知道斲丧写入哪个分区,默认可能有些会按照Key计较其应写入哪个分区,这个时辰就要思量与Key较强关联的应用是否会影响你的行使场景。 好比有些应用场景也许只是要求某个分区内动静有序,假如一旦调解分区数,就有也许影响这种行使场景。 以是我们一样平常会只管设置较好的分区数,只管满意将来2年内方针的吞吐量。 假如与Key关联较弱的应用,我们可以在将来按照现实环境举办增进分区数。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |