gpt4 book ai didi

apache-kafka - 提高 Kafka Producer 的性能

转载 作者:行者123 更新时间:2023-12-04 05:25:20 27 4
gpt4 key购买 nike

我们在 apache kafka 0.10.0.x 和 spring 3.x 上运行,不能使用 spring kafka,因为它支持 spring 框架版本 4.x。

因此,我们使用原生的 Kafka Producer API 来生产消息。

现在我担心的是我的制片人的表现。问题是我相信对 producer.send 的调用才是真正建立与 Kafka 代理的连接,然后将消息放入缓冲区,然后尝试发送,然后可能调用 producer.send() 中提供的回调方法。

现在 KafkaProducer 文档说它使用一个缓冲区和另一个 I/O 线程来执行发送,并且应该适本地关闭它们,以免资源泄漏。

据我了解,这意味着如果我每次调用 producer.send() 时都会发送 100 条消息,它会尝试连接到代理,这是一项昂贵的 I/O 操作。

如果我错了,您能否纠正我的理解,或者建议更好地使用 KafkaProducer?

最佳答案

你的理解是部分正确的。

正如@leshkin 指出的那样,有一些配置参数可以调整 KafkaProducer 将如何处理要发送的消息的缓冲。

然而,独立于缓冲策略,生产者将负责缓存与主题领导者代理的已建立连接。

实际上,您可以使用 connections.max.idle.ms 参数(默认为 9 分钟)调整生产者将保持这种连接的时间。

因此,为了回答您最初的问题,与代理建立连接的 I/O 成本仅发生在第一次 send 调用时,并且只要您有数据要发送,就会随着时间的推移而分摊。

关于apache-kafka - 提高 Kafka Producer 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45600395/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com