I/O中的Kafka错误java.io.EOFException:null

Yoh*_*age 7 apache-kafka

我正在使用Kafka 0.8.2.0(Scala 2.10).在我的日志文件中,我间歇地看到以下消息.这似乎是一个连接问题,但我在我的localhost中运行.

这是一条无害的警告信息,还是应该做些什么来避免它?

2015-10-30 14:12:38.015  WARN 4251 --- [ad | producer-1] [                                    ] o.apache.kafka.common.network.Selector   : Error in I/O with localhost/127.0.0.1

java.io.EOFException: null
    at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:62)
    at org.apache.kafka.common.network.Selector.poll(Selector.java:248)
    at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:192)
    at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:191)
    at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122)
    at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

Phi*_*ock 8

这对党来说有点晚了,但可能对某人有所帮助 - 这对我有所帮助.

您所看到的是因为Kafka经纪人在超过一定的闲置时间后被动关闭连接.它由此broker属性定义:connections.max.idle.ms - 默认值为10分钟.

显然,0.8.x中的kafka客户端不尊重该设置,只是让空闲连接保持打开状态.您将在日志中看到警告,但它应该对您的应用程序没有任何不良影响.

更多细节:https://issues.apache.org/jira/browse/KAFKA-3205

代理配置在此处记录:https://kafka.apache.org/090/documentation/#configuration

在那张表中你会发现:

Name: connections.max.idle.ms
Description: Idle connections timeout: the server socket processor threads close the connections that idle more than this
Type:long
Default: 600000
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.