kafka同步:"java.io.IOException:太多打开的文件"

Yon*_*ihu 9 apache-kafka kafka-consumer-api

我们遇到了卡夫卡的问题.有时突然间,我们会在没有警告的情况下退出同步并在发出事件时开始获取异常.

我们得到的例外是:"java.io.IOException:打开的文件过多"

在许多情况下,这似乎是kafka抛出的一般异常.我们稍微调查一下,我们认为根本原因是当尝试向某个主题发出事件时,它会失败,因为kafka没有针对此主题的领导分区

有人可以帮忙吗?

nel*_*nda 8

我假设你在Linux上.如果是这种情况,那么正在发生的事情是你的文件描述符用完了.真正的问题是为什么会这样.

默认情况下,Linux通常会保持这个数字相当低.您可以通过ulimit检查实际值:

ulimit -a | grep "open files"
Run Code Online (Sandbox Code Playgroud)

然后你可以通过ulimit设置该值:

sudo ulimit -n 4096
Run Code Online (Sandbox Code Playgroud)

也就是说,除非有问题的Kafka主持人有很多话题/分区,否则很难达到这个限制.可能发生的是其他一些过程是保持文件或连接打开.为了弄清楚你将要用lsof做一些侦探工作.