一般我们设置成2个或3个.很多企业设置为2个.
副本的优势:提高可靠性.副本的劣势:增加了网络IO传输
2.kafka压测kafka官方自带压力测试脚本:kafka-consumer-pref-test.sh kafka-preducer-pref-test.sh
kafka压测时,可以查看到哪个地方出现了瓶颈(CPU 内存 网络IO),一般都是网络IO达到瓶颈.
消费能力测试:
bin/kafka-consumer-pref-test.sh --zookeeper node01:2181 --topic test --fetch-size 10000 --messages 110000000 --threads 1
--fetch-size 指定每次fetch的数据大小
--messages 指定总共要消费的数据量
--threads 线程数
3.kafka的机器数量原则:kafka的生产能力不能大于消费能力
kafka的机器数量(经验公式)=2*(峰值速度m/s*副本数/100)+1
比如压力测试写入(生产)速度为10m/s每台,峰值为50m/s,副本数为2
kafka数量=2*(50*2/100)+1=3台
4.kafka的分区数1)创建一个只有1个分区的topic
2)测试这个topic的producer吞吐量和consumer吞吐量.
3)假设他们的值分别为tp和tc,单位可以是mb/s
4)然后假设总的目标吞吐量是tt,那么分区数=tt/min(tp,tc)
例如:producer吞吐量=20m/s,consumer吞吐量=50m/s 期望吞吐量100m/s
分区数=100/20=5分区
分区一般设置为3-10个(取5个)
5.kafka中数据量计算每天总数据量100g,每天产生1亿条日志,10000万/24/60/60=1150条/每秒
平均每秒:1150条
低谷每秒:50条
高峰每秒:1150*(2-20倍)=2300条-23000条(取10000条)
每条日志大小:0.5-2k(取1k)
每秒多少数据量:2m-20m 10000*1k=10m
6.kafka的硬盘大小每天的数据量100g*2个副本*3天/70%=600g/0.7=900g
7.kafka日志保存时间默认为7天,生产环境建议3天.
8.kafka监控开源监控器:kafkamanager kafkamonitor
9.多少个topic一般多少个日志类型就多少个topic,也有对日志类型进行合并的。


![[kafka]副本设定 | 压测 | 机器数量 | 分区数 | 数据量计算 | 硬盘大小 | 日志保存时间 | 监控 | 多少个topic [kafka]副本设定 | 压测 | 机器数量 | 分区数 | 数据量计算 | 硬盘大小 | 日志保存时间 | 监控 | 多少个topic](http://www.mshxw.com/aiimages/31/774042.png)
