【问题标题】:KafkaException: Wrong request type 18KafkaException:错误的请求类型 18
【发布时间】:2016-08-16 01:02:00
【问题描述】:

我最近尝试使用来自 Kafka 主题的消息并收到以下错误消息:

[2016-08-15 17:56:05,025] INFO Closing socket connection to /192.168.34.11. (kafka.network.Processor)
[2016-08-15 17:56:05,050] ERROR Closing socket for /127.0.0.1 because of error (kafka.network.Processor)
kafka.common.KafkaException: Wrong request type 18
    at kafka.api.RequestKeys$.deserializerForKey(RequestKeys.scala:64)
    at kafka.network.RequestChannel$Request.<init>(RequestChannel.scala:50)
    at kafka.network.Processor.read(SocketServer.scala:450)
    at kafka.network.Processor.run(SocketServer.scala:340)
    at java.lang.Thread.run(Thread.java:745)
[2016-08-15 17:56:05,154] ERROR Closing socket for /127.0.0.1 because of error (kafka.network.Processor)
kafka.common.KafkaException: Wrong request type 16
    at kafka.api.RequestKeys$.deserializerForKey(RequestKeys.scala:64)
    at kafka.network.RequestChannel$Request.<init>(RequestChannel.scala:50)
    at kafka.network.Processor.read(SocketServer.scala:450)
    at kafka.network.Processor.run(SocketServer.scala:340)
    at java.lang.Thread.run(Thread.java:745)
[2016-08-15 17:56:10,476] ERROR Closing socket for /127.0.0.1 because of error (kafka.network.Processor)
java.io.IOException: Broken pipe
    at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
    at sun.nio.ch.IOUtil.write(IOUtil.java:65)
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487)
    at kafka.api.TopicDataSend.writeTo(FetchResponse.scala:123)
    at kafka.network.MultiSend.writeTo(Transmission.scala:101)
    at kafka.api.FetchResponseSend.writeTo(FetchResponse.scala:231)
    at kafka.network.Processor.write(SocketServer.scala:472)
    at kafka.network.Processor.run(SocketServer.scala:342)
    at java.lang.Thread.run(Thread.java:745)

您可能从错误消息中可以看出,kafka 代理已映射到 localhost - 但除此之外,我无法真正解析它,而且很难找到错误消息“错误请求类型 18”的详细信息.

还有其他人有这个问题吗?

【问题讨论】:

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


    【解决方案1】:

    此错误告诉您客户端发送了代理无法理解的请求。在您的特定情况下,客户端发送了ListGroupsRequest(请求代码16)和ApiVersionsRequest(请求代码18)。

    您可以获得最新的请求代码列表here。此列表也可在here 获得,但它看起来有点过时,因为最新版本包含更多 API 密钥。

    要解决此问题,您需要升级代理或使用旧客户端。

    【讨论】:

    • 赞成确认我怀疑我的问题是什么。如果你有一个不同步的代理/客户端版本,你会遇到这个问题。就我而言,我使用的是更旧的代理版本和最新的客户端版本,导致此通信异常。
    【解决方案2】:

    错误似乎已经消失,但我认为我没有进行任何更改;我不确定到底发生了什么。很抱歉这个无用的问题。

    【讨论】:

      【解决方案3】:

      您应确保您在客户端使用的 Kafka 版本与 Kafka 集群的版本相同。例如带有 scala 的简单 kafka 客户端。 libraryDependencies += "org.apache.kafka" % "kafka-clients" % "0.10.0.0" 应该与 kafkacluster 相同。

      【讨论】:

        猜你喜欢
        • 2018-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-27
        • 2021-12-08
        • 2017-12-14
        相关资源
        最近更新 更多