kafka发送消息慢

弱弱的问个问题:最近发现生产者发送信息正常,关闭连接用时不定,有时需要几秒钟才能关闭。
之前现网都是正常的,最近有几个连接比较频繁的生产者出现连接耗时比较长,导致业务数据延迟比较厉害,大神这是什么原因?

retries=0
linger.ms=1
acks=all
buffer.memory=33554432
batch.size=16384
connections.max.idle.ms=10000
key.serializer=org.apache.kafka.common.serialization.StringSerializer
value.serializer=org.apache.kafka.common.serialization.StringSerializer
public void send(String messages) {
        if(messages.isEmpty()){
            return;
        }
        producer.send(new ProducerRecord<String, String>(TOPIC,messages));
    }

public void close(){
        producer.close();
    }

用kafka自带的压测试了如下:

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

100 records sent, 21.519260 records/sec (0.00 MB/sec), 128.99 ms avg latency, 3674.00 ms max latency, 12 ms 50th, 124 ms 95th, 3674 ms 99th, 3674 ms 99.9th.






发表于: 8月前   最后更新时间: 8月前   游览量:1392
上一条: kafka producer异步发送在失败回调里close,会失去前面retry的request的正确回调结果
下一条: kafka 发送消息send报错,无法连接

评论…


  • 3台服务器集群,12个分区,2个副本。
    大神,生产者有没有上限,或者达到多少会影响效率?
    • 1024openfile,这个是不是意味着最多只有1024*12个(生产者+消费者)?

      业务实时同步数据到kafka,之前是每同步一次创建一个生产者,发送完立马关闭连接。因为同步服务比较多,是否会导致同一时间内生产者达到一定上限了?
      现在换了一种方式:一个服务创建一个生产者不关闭,这个是不是意味着生产者就一直在?如果生产者在空闲connections.max.idle.ms=10000毫秒后会自己关闭生产者吗?
      -------------------------------------------------------------------------------
      应该是因为你带表情图片了所以发送看不到,但是邮箱我收到了。
        acks=all,你的副本有多少个?
      • 评论…
        • in this conversation