卡夫卡错误读取字段';相关性id';:java.nio.BufferUnderflowException

卡夫卡错误读取字段';相关性id';:java.nio.BufferUnderflowException,java,apache-kafka,kafka-consumer-api,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.request

正在消费者上获取此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)
没有客户端-服务器版本不匹配

确保您的客户端连接到真正的卡夫卡端口

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

因此,如果目标侦听端口与kafka服务器无关,则可能发生这种情况

只要一分钟的检查


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

对我来说,我遇到了上述异常的单元测试失败问题。当我检查本地机器上正在使用的端口(9092)时,它被绑定到已经在运行的进程,值得检查是否有Kafka在本地运行的进程。如果您确定不希望它运行,请通过查找其pid来终止它

(但不要尝试生产:p)

lsof-i:9092
杀死-9
lsof -i:9092
kill -9 <PID_FROM_ABOVE_IF_ANY>