项目经验之Kafka机器数量计算与如何选定分区数量

您所在的位置:网站首页 kafka每秒消费数量 项目经验之Kafka机器数量计算与如何选定分区数量

项目经验之Kafka机器数量计算与如何选定分区数量

2023-11-20 19:53| 来源: 网络整理| 查看: 265

1.kafka机器数量计算

Kafka机器数量(经验公式)=2*(峰值生产速度*副本数/100)+1

先要预估一天大概产生多少数据,然后用Kafka自带的生产压测(只测试Kafka的写入速度,保证数据不积压),计算出峰值生产速度。再根据设定的副本数,就能预估出需要部署Kafka的数量。

比如我们采用压力测试测出写入的速度是10M/s一台,峰值的业务数据的速度是50M/s。副本数为2。

Kafka机器数量=2*(50*2/100)+ 1=3台

2.如何选定分区数量   分区数量选择考虑因素:   主题需要达到多大吞吐量?比如主题每秒写入速度为1GB/s   从单个分区读取数据最大吞吐量是多少?每个分区一般都会有一个消费者,如果你知道消费者将数据写入数据库的速度不会超过50M/s,那么你也该知道,消费者从一个分区读取     数据的吞吐量不需要超过50M/s。可以通过类似的方法估算生产者向单个分区写入数据的吞吐量,不过生产者的速度一般比消费者快得多,所以最好为生产者多估算一些吞吐量。(这样的好处就是增加分区增加消费者提升并行度、负载均衡、提升消费速度)每个broker包含的分区数量、可用的磁盘空间和网络带宽。如果消息是按照不同的键来写入分区的,那么为已有的主题新增分区就会很困难单个broker对分区个数是有限制的,因为分区越多,占用的内存越多,完成首领选举需要的时间也越长。 很显然,综合考虑以上几个因素,你需要很多分区,但不能太多。如果你估算出 题的 吐量和悄费者吞吐量,可以用主题吞吐量除以消费者吞吐量算出分区的个数。也就是说, 如果每秒钟要从主题上写入和读取 lGB 的数据,并且每个消费者每秒钟可以处理 50MB 的数据,那么至少需要 20 个分区。这样就可以让 20 个消费者同时读取这些分区,从而达 到每秒钟 lGB 的吞吐量。 如果不知道这些信息,那么根据经验,把分区的大小限制在 25G 以内 可以得到比较理想 的效果。 总结:

1.估算每天大概多少数据;

2.再计算每秒大概是多少数据;(单个主题)

3.再计算单台机子的每秒写入速度

4.根据此公式计算出Kafka机器数量(经验公式)=2*(峰值生产速度*副本数/100)+1

5.再根据主题每秒的吞吐量与消费者的吞吐量相除计算出分区数量(一分区对应一消费者)

6根据预估的kafka机器数与分区数定总机器数(一般一机一分区)

         

 

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3