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 数据发送不同的主题