在消费者身上得到这个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条答案
按热度按时间kiayqfof1#
确保你的客户端连接到一个真正的Kafka端口!
解析(其中一个?)预期kafka消息的第一个头字段时会发生此特定错误,如堆栈跟踪中responseheader.java的调用所示。
因此,如果目标侦听端口与kafka服务器无关,则可能发生这种情况。
只要一分钟!
否则,应该检查客户机-服务器版本是否不匹配。
axr492tv2#
对我来说,除了上面的例外,单元测试失败给我带来了麻烦。当我检查本地机器上正在使用的端口(9092)时,它被绑定到已经运行的进程,值得检查是否有kafka的进程在本地运行。如果您确定不希望它运行,请通过查找其pid来终止它。
(不过,不要试穿产品:p)