Kafka Streams应用程序在kafka服务器上打开了太多文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kafka Streams应用程序在kafka服务器上打开了太多文件相关的知识,希望对你有一定的参考价值。

我一直在研究基于java kafka-streams API的应用程序,其目标是处理来自一个kafka主题的数据流,并将其生成另一个主题。

看起来,每当我开始使用kafka-streams应用程序生成消息时,文件句柄只会继续打开我正在使用的kafka代理,并且它们永远不会关闭,这意味着最终kafka服务器最终会打开太多的文件,并且kafka和zookeeper守护进程崩溃。

我正在使用kafka-streams-1.0.1 API jar for Java,并在JDK 11上运行.kafka集群是Kafka版本1.0.0。

我的应用程序的配置包括以下kafka生产者配置:

  • batch.size:设置为100,000条消息。
  • linger.ms:设置为1,000毫秒。
  • buffer.memory:设置为相当于5兆字节的字节。

流处理本身非常简单,并且组成:

stream.map((k,v) -> handle(k,v)).filter((k,v) -> v != null).to(outgoingTopic);

我很感激你们的任何建议。

答案

使用Java 8或Java 10或更低版本并使用最新的Kafka,https://kafka.apache.org/quickstart

请参阅此处有关bug提交的https://issues.apache.org/jira/browse/KAFKA-6855的报道

以上是关于Kafka Streams应用程序在kafka服务器上打开了太多文件的主要内容,如果未能解决你的问题,请参考以下文章

Kafka ETL 的应用及架构解析|告别 Kafka Streams,让轻量级流处理更加简单

如何使用 Kafka Streams 为应用程序编写单元测试用例

Kafka Streams - 根据 Streams 数据发送不同的主题

Kafka Streams 开发单词计数应用

如何在单个 Kafka Streams 应用程序中连接到多个集群?

Kafka Consumer 和 Kafka Streams 之间有啥区别吗? [复制]