Kafka错误读取字段'correlation_id':java.nio.BufferUnderflowException

时间:2017-06-07 15:33:32

标签: java apache-kafka kafka-consumer-api

在消费者身上获得此kafka例外:

org.apache.kafka.common.protocol.types.SchemaException: Error reading field 'correlation_id': java.nio.BufferUnderflowException
at org.apache.kafka.common.protocol.types.Schema.read(Schema.java:71)
at org.apache.kafka.common.requests.ResponseHeader.parse(ResponseHeader.java:53)
at org.apache.kafka.clients.NetworkClient.handleCompletedReceives(NetworkClient.java:435)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:265)
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:320)
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:213)
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:193)
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.awaitMetadataUpdate(ConsumerNetworkClient.java:134)
at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorKnown(AbstractCoordinator.java:184)
at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:886)
at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:853)

没有客户端 - 服务器版本不匹配。

2 个答案:

答案 0 :(得分:2)

  

确保您的客户端连接到真正的Kafka端口!

在解析(其中一个?)预期kafka消息的第一个标题字段时发生此特定错误,如在堆栈中调用 ResponseHeader.java 所示 - 跟踪。

如果你的目标是与kafka服务器无关的监听端口,就会发生这种情况。

  

只需1分钟检查!

否则,您应该检查客户端 - 服务器版本不匹配。

答案 1 :(得分:0)

对我来说,我遇到了上述异常导致单元测试失败的麻烦。当我检查在本地计算机上使用的端口(9092)时,它已绑定到已经在运行的进程,值得检查是否有Kafka在本地运行的进程。如果您确定自己不希望它运行,请通过查找其pid杀死它。

(虽然不要尝试生产:P)

lsof -i:9092
kill -9 <PID_FROM_ABOVE_IF_ANY>