【发布时间】:2018-10-13 07:27:57
【问题描述】:
我对 kafka 生产者有疑问。实际上我正在使用spring kafka,并通过KafkaTemplate发送消息leke:
DefaultKafkaProducerFactory<K, V> defaultKafkaProducerFactory = new DefaultKafkaProducerFactory<>(producerParams);
KafkaTemplate kafkaTemplate = new KafkaTemplate<>(defaultKafkaProducerFactory);
RecordMetadata recordMetadata = kafkaTemplate.send(record).get().getRecordMetadata();
问题是有时发送消息需要 4-20 秒。有很多消息需要 100 毫秒才能发送。所以我有几个问题:
消息大小和吞吐量之间是否存在相关性,是什么关系?
我应该首先检查什么,也许我没有做好调整,有什么方向吗?
【问题讨论】:
-
也许您的发件人设置了 batch.size 并且 linger.ms 很高?
-
linger.ms = 0 ack = all
-
我看到有时有应用程序的机器上的 CPU 达到 70-85%,kafka 在同一台机器上。也许是因为这个。我该如何检查?
标签: apache-kafka messaging producer-consumer kafka-producer-api spring-kafka