Kafka broker-list,bootstrap-server以及zookeeper的区别
broker-list
zookeeper的默认端口号是2181,kafka的默认端口号是9092
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
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 的含义