在网上搜了半天,全是乱七八糟的答案,没有说明具体的原因,解决方法也不对。记录一下,给各位伙伴避坑
-
当创建Topic运行以下命令时:
bin\windows\kafka-topics.bat --create --bootstrap-server localhost:2181 --replication-factor 1 --partitions 1 --topic test
-
出现zookeeper错误(java.io.IOException: Unreasonable length = 308375649)
WARN Close of session 0x0 (org.apache.zookeeper.server.NIOServerCnxn)
java.io.IOException: Unreasonable length = 308375649
at org.apache.jute.BinaryInputArchive.checkLength(BinaryInputArchive.java:166)
at org.apache.jute.BinaryInputArchive.readBuffer(BinaryInputArchive.java:127) -
分析问题原因:
因为老版本的 Kafka/Zookeeper 设置与新的设置之间的变化。 在老版本中,我们应该使用 --zookeeper 选项和端口 2181(问题代码);但是,对于新的 Kafka/Zookeeper 版本,用户应默认将端口 9092 用于客户 API 。
将之前的代码修改为以下代码解决该问题:bin\windows\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test