首页 > 解决方案 > Kafka生产者在第一条消息上很慢

问题描述

我在 .NET 中有一个测试应用程序,它创建 kafka 生产者并使用 Confluent 客户端库向主题发送一些消息。

由于某种原因,第一条消息的确认总是迟到 1 秒,后续消息的确认几乎立即到达。

这是正常行为还是我缺少一些配置?


样本输出:

18:06:13.605 Message sent in 1,007.0.
18:06:13.607 Message sent in 1.0.
18:06:13.608 Message sent in 1.0.
18:06:13.609 Message sent in 1.0.
18:06:13.610 Message sent in 1.0.
18:06:13.611 Message sent in 1.0.
18:06:13.612 Message sent in 1.0.
18:06:13.613 Message sent in 1.0.
18:06:13.614 Message sent in 1.0.
18:06:13.615 Message sent in 1.0.

标签: .netapache-kafkaconfluent-platform

解决方案


在对 kafka 请求日志进行了更多挖掘之后,我发现在发送第一条消息之前,生产者会为所有主题发送 API_VERSIONS 和 METADATA 请求。1 秒后,它再次发送 METADATA 请求,这次是针对生产者尝试向其推送消息的特定主题。

将 TopicMetadataRefreshIntervalMs 设置为小于 1 秒可减少第一条消息延迟。作为不利的生产者开始更频繁地发送元数据请求。令人惊讶的是,将 TopicMetadataRefreshIntervalMs 设置为超过一秒并不会延长延迟。

不确定这是错误还是功能。


推荐阅读