【发布时间】:2018-11-16 09:28:16
【问题描述】:
最近,我们的 Kafka 消费者和生产者遇到了一些性能问题。我们在 Scala 中使用 Kafka Java API。什么被认为是打开和关闭消费者和生产者对象的良好做法?我相信这是一个非常开放的问题,正确答案总是depends,但我正在尝试对此进行推理。
消费者可以长时间运行连接并保持打开状态吗?
是否应该在我们完成消息生成后关闭生产者?
【问题讨论】:
-
如果您实际上不再使用 Closable 对象,是的,关闭这些资源是一种良好的 JVM 实践...这也应该直接转化为 Kafka API
-
性能问题可能存在于代理或网络级别,并且客户端中还有很多其他缓冲选项,只是说您有一些“性能问题”是相当模糊的
-
我同意代理或网络级别可能存在性能问题,但我们在非常频繁地打开和关闭消费者和生产者对象时遇到了问题。所以我假设这可能是一个原因。因此发布了这个问题,以获得处理此类问题的专业人士的见解。
-
您可能想“经常”澄清一下,用代码示例会更好
标签: apache-kafka kafka-consumer-api kafka-producer-api