kafka python获取请求密钥时出错

8ljdwjyq  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(424)

我在连接到cloudera kafka版本2.0.1(0.9.9.0)时遇到了问题,使用kafka python版本1.2.4和1.2.4。和1.2.5。我的python版本是2.6.6。下面是命令和异常堆栈跟踪:

>>> from kafka import KafkaProducer

>>> producer = KafkaProducer(bootstrap_servers='host')

2016-07-20 10:56:29,370 ERROR kafka.network.Processor: Closing socket for ###:9092 - ###:50257 because of error
kafka.network.InvalidRequestException: Error getting request for apiKey: 18 and apiVersion: 0
    at kafka.network.RequestChannel$Request.liftedTree2$1(RequestChannel.scala:93)
    at kafka.network.RequestChannel$Request.<init>(RequestChannel.scala:90)
    at kafka.network.Processor$$anonfun$run$11.apply(SocketServer.scala:426)
    at kafka.network.Processor$$anonfun$run$11.apply(SocketServer.scala:421)
    at scala.collection.Iterator$class.foreach(Iterator.scala:742)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1194)
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
    at kafka.network.Processor.run(SocketServer.scala:421)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Unexpected ApiKeys id `18`, it should be between `0` and `16` (inclusive)
    at org.apache.kafka.common.protocol.ApiKeys.forId(ApiKeys.java:69)
    at org.apache.kafka.common.requests.AbstractRequest.getRequest(AbstractRequest.java:39)
    at kafka.network.RequestChannel$Request.liftedTree2$1(RequestChannel.scala:90)
    ... 9 more

我已经验证了我可以在这台机器上使用kafka控制台实用程序进行连接,也可以在另一台机器上使用相同版本的kafka python进行连接。有没有人看到这个错误或者知道问题是什么?
谢谢您。

jk9hmnmh

jk9hmnmh1#

是什么让您怀疑kafka python中存在连接错误?有没有客户的错误,或者其他奇怪的行为?
粘贴的错误来自代理,它只是反映了试图通过探测各种代理来识别代理版本的尝试 更新的api调用。你可以放心地忽略这个错误。要防止版本探测,请向kafkaproducer传递一个显式api\u版本。我想 api_version=(0, 9) 是你想要的,但我并不熟悉你的Kafka发行版(cloudera-kafka版本2.0.1)。

相关问题