kafka发送消息慢

Eiaranˉ 发表于: 2018-01-25   最后更新时间: 2018-01-25 10:40:03   6,447 游览

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

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.
发表于 2018-01-25
添加评论

acks=all,你的副本有多少个?

3台服务器集群,12个分区,2个副本。
大神,生产者有没有上限,或者达到多少会影响效率?

生产的上限跟你服务器的内存,网络,服务器设置有关,看你能当前用户能创建多少openfile。

关闭延迟了多久?

1024,这是不是意味着一个topic的消费者+生产者上限是1024*12

1024openfile,这个是不是意味着最多只有1024*12个(生产者+消费者)?

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

准确的说是1024-10=1024个连接(应用占用的资源)。
ulimit -n  单进程下 允许打开的文件数。

你的答案

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