kafka生产者客户端发送消息慢

黄色小章鱼 发表于: 2017-08-03   最后更新时间: 2021-08-30 00:19:14   8,600 游览

弱弱的问个问题,我用新版本的org.apache.kafka.clients.producer.ProducerRecord.send(record)发送消息很慢,需要200毫秒左右,

而用老版本的kafka.javaapi.producer.Producer.send(record)发送消息反而快非常多。

一台Linux虚拟机,单机部署zookeeper和kafka,测试时用新版本producer发送500条数据,第一条50毫秒左右,后面的都是200毫秒左右。

下面是生产者客户端配置,大神帮忙看看哪里出问题了,谢谢

retries=0
linger.ms=0
acks=1
buffer.memory=33554432
key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=org.apache.kafka.common.serialization.StringSerializer
发表于 2017-08-03
添加评论

用kafka自带的压测试试。

bin/kafka-producer-perf-test.sh --topic test --num-records 100 --record-size 1 --throughput 100 --producer-props bootstrap.servers=localhost:9092

可以压测,我的consumer都能消费数据,我用新的org.apache.kafka.clients.producer.KafkaProducer也能发送消息,consumer也能消费到消息,只是新的Java版本生产者发送太慢了,不如用老的Scala版本的kafka.javaapi.producer.Producer生产者发送消息快。

那就不合理了,新版kafka生产者采用的单例模式,理论是更快才对。

我也感觉不太合理,如果服务器有问题,那个Scala版本的生产者应该也慢才对,但是就是新版本的慢,所以我就不知道是哪里出问题了,kafka版本是0.10.1.0

找到原因了,我把kafka版本升级到0.10.2.1,现在producer发送很快,发送一条数据基本在1-2毫秒。

之前kafka版本是多少。

你的答案

查看kafka相关的其他问题或提一个您自己的问题