1.Kafka 压测
用 Kafka 官方自带的脚本,对 Kafka 进行压测。Kafka 压测时,可以查看到哪个地方出
现了瓶颈(CPU,内存,网络 IO)。一般都是网络 IO 达到瓶颈。
kafka-consumer-perf-test.sh
kafka-producer-perf-test.sh
(1)测试生产者
bin/kafka-producer-perf-test.sh
--topic test
--record-size 100
--num-records 100000
--throughput -1
--producer-props
bootstrap.servers=ubuntu-00:9092,ubuntu-00:9092
说明:
record-size 是一条信息有多大,单位是字节
num-records 是总共发送多少条信息。
throughput 是每秒多少条信息,设成-1,表示不限流,可测出生产者最大吞吐量。
(2)测试消费者
Consumer 的测试,如果这四个指标(IO,CPU,内存,网络)都不能改变,考虑增加分区数来提升性能
bin/kafka-consumer-perf-test.sh
--zookeeper ubuntu-00:2181
--topic test
--fetch-size 10000
--messages 10000000
--threads 1
参数说明:
--zookeeper 指定 zookeeper 的链接信息
--topic 指定 topic 的名称
--fetch-size 指定每次 fetch 的数据的大小
--messages 总共要消费的消息个数
2.Kafka 机器数量计算
Kafka 机器数量(经验公式)=2*(峰值生产速度*副本数/100)+1
先拿到峰值生产速度,再根据设定的副本数,就能预估出需要部署 Kafka 的数量。
比如我们的峰值生产速度是 50M/s。副本数为 2。
Kafka 机器数量=2*(50*2/100)+ 1=3 台