在消费者身上获得此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)
没有客户端 - 服务器版本不匹配。
答案 0 :(得分:2)
确保您的客户端连接到真正的Kafka端口!
在解析(其中一个?)预期kafka消息的第一个标题字段时发生此特定错误,如在堆栈中调用 ResponseHeader.java 所示 - 跟踪。
如果你的目标是与kafka服务器无关的监听端口,就会发生这种情况。
只需1分钟检查!
否则,您应该检查客户端 - 服务器版本不匹配。
答案 1 :(得分:0)
对我来说,我遇到了上述异常导致单元测试失败的麻烦。当我检查在本地计算机上使用的端口(9092)时,它已绑定到已经在运行的进程,值得检查是否有Kafka在本地运行的进程。如果您确定自己不希望它运行,请通过查找其pid杀死它。
(虽然不要尝试生产:P)
lsof -i:9092
kill -9 <PID_FROM_ABOVE_IF_ANY>