在linux雲服務器上搭建了一套kafka3.0集群,然后安裝以前的創建topic指令,例如這樣——
./kafka-topics.sh --bootstrap-server master:2181,slave1:2181,slave2:2181 --replication-factor 1 --partitions 1 --topic test
然而,卻出現了這樣一個異常提示:
Exception in thread "main" joptsimple.UnrecognizedOptionException: zookeeper is not a recognized option
at joptsimple.OptionException.unrecognizedOption(OptionException.java:108)
at joptsimple.OptionParser.handleLongOptionToken(OptionParser.java:510)
at joptsimple.OptionParserState$2.handleArgument(OptionParserState.java:56)
at joptsimple.OptionParser.parse(OptionParser.java:396)
at kafka.admin.TopicCommand$TopicCommandOptions.<init>(TopicCommand.scala:517)
at kafka.admin.TopicCommand$.main(TopicCommand.scala:47)
at kafka.admin.TopicCommand.main(TopicCommand.scala)
愣了一下,百度一番,才明白,原來新版本的kafka,已經不需要依賴zookeeper來創建topic,新版的kafka創建topic指令為下:
./kafka-topics.sh --create --bootstrap-server master:9097 --replication-factor 1 --partitions 1 --topic test1
注意,這里的master是我主機ip映射的主機名,改成該kafka服務器對應的IP即可。
測試一下,在master服務器上創建一個topic為test,然后生產幾條信息——
[root@master bin]# ./kafka-console-producer.sh --broker-list master:9097 --topic test
>hello
>world
在另一台機器上,開啟消費者控制台,監聽test的topic,發現可以收到數據——
[root@slave1 bin]# ./kafka-console-consumer.sh --bootstrap-server slave1:9097 --topic test --from-beginning
hello
word