在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