在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