kafka 创建生产者时提示 --bootstrap-server is not a recognized option
这种一般是版本不一致导致的命令不存在,根据下面的命令提示看这三个命令那个存在用哪个:--bootstrap-server,--broker-list,--zookeeper
broker-list
broker指的是kafka的服务端,可以是一个服务器也可以是一个集群。producer和consumer都相当于这个服务端的客户端。
broker-list指定集群中的一个或者多个服务器,一般我们再使用console producer的时候,这个参数是必备参数,另外一个必备的参数是topic,kafka的默认端口号是9092.如下示例:
[wt@hadoop02 kafka]$ bin/kafka-console-producer.sh --broker-list hadoop02:9092 --topic myself
1
bootstrap-servers vs zookeeper
zookeeper是老版本的用法,0.8以前的kafka,消费的进度(offset)是写在zk中的,所以consumer需要知道zk的地址。这个方案有性能问题,0.9 的时候整体大改了一次,brokers 接管了消费进度,consumer 不再需要和 zookeeper 通信了,所以就用bootstrap-server了。
bootstrap-server是新版本的用法,新版的 Kafka 使用一个选举出来的 controller 来监听 zookeeper,其他 node 再去和 controller 通信,这么做的目的是为了减少 zookeeper 的压力。bootstrap-servers 会自动发现其他 broker,这也是 bootstrap 的含义
————————————————
版权声明:本文为CSDN博主「大梁、」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41414272/article/details/114532000