Kafka

Kafka

压测

用Kafka官方自带的脚本,对Kafka进行压测。Kafka压测时,可以查看到哪个地方出现了瓶颈(CPU,内存,网络IO)。一般都是网络IO达到瓶颈。

kafka-consumer-perf-test.sh

kafka-producer-perf-test.sh

1)Kafka Producer压力测试

bin/kafka-producer-perf-test.sh  --topic test --record-size 100 --num-records 100000 --throughput -1 --producer-props bootstrap.servers=hadoop102:9092,hadoop103:9092,hadoop104:9092

# record-size是一条信息有多大,单位是字节。
# num-records是总共发送多少条信息。
# throughput 是每秒多少条信息,设成-1,表示不限流,可测出生产者最大吞吐量。
100000 records sent, 16914.749662 records/sec (1.61 MB/sec), 1244.19 ms avg latency, 2118.00 ms max latency, 1292 ms 50th, 2081 ms 95th, 2110 ms 99th, 2117 ms 99.9th.

# 本例中一共写入10w条消息,吞吐量为1.61 MB/sec,每次写入的平均延迟为1244.19毫秒,最大的延迟为2118毫秒。 百分之50的延迟在1292以上,百分之95的在2081......

2)Kafka Consumer压力测试

Consumer的测试,如果这四个指标(IO,CPU,内存,网络)都不能改变,考虑增加分区数来提升性能。

bin/kafka-consumer-perf-test.sh --broker-list hadoop102:9092,hadoop103:9092,hadoop104:9092 --topic test --fetch-size 10000 --messages 10000000 --threads 1
# --fetch-size 指定每次fetch的数据的大小
# --messages 总共要消费的消息个数 
start.time end.time data.consumed.in.MB MB.sec data.consumed.in.nMsg nMsg.sec
2021-05-22 14:35:45:753 2021-05-22 14:35:48:719 9.5367 3.2154 100000 33715.4417

Kafka机器数量计算

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

先拿到峰值生产速度,再根据设定的副本数,就能预估出需要部署Kafka的数量。

比如我们的峰值生产速度是50M/s。副本数为2。

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

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分区

https://blog.csdn.net/weixin_42641909/article/details/89294698

分区数一般设置为:3-10个

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Kafka Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(...
    redleaf阅读 381评论 0 2
  • Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replic...
    麟玉阅读 229评论 0 0
  • Kafka史上最详细原理总结分为上下两部分,承上启下 Kafka史上最详细原理总结上 Kafka史上最详细原理总结...
    小波同学阅读 238,424评论 6 218
  • 彩排完,天已黑
    刘凯书法阅读 4,497评论 1 3
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 129,837评论 2 7

友情链接更多精彩内容