新版 kafka 消费者、生产者配置为何使用 bootstrap-servers 而不是 zookeeper 服务器地址?

2018-07-30 21:53:53 +08:00
 esolve

新版 kafka 消费者、生产者配置为何使用 bootstrap-servers 直接配置 broker list 而不是使用 zookeeper 服务器地址? 难道新版 kafka 消费者、生产者不需要从 zookeeper 获取信息了吗? 直接使用 bootstrap-servers 的话,假如有 kafka broker 新增的话 不是要重新配置,重启么? 不入 zookeeper 啊

17121 次点击
所在节点    问与答
4 条回复
SErHo
2018-07-30 22:45:06 +08:00
1. bootstrap servers 如其名,只需要配个两三个就行了,会自动发现其他 broker

2. zookeeper 本来只是 Kafka 实现所需要的依赖,暴露给 kafka 使用者我觉得没必要

3. Kafka 所有的信息可以通过 API 来获得
billlee
2018-07-30 22:59:17 +08:00
0.8 以前,消费进度是直接写到 zookeeper 的,consumer 必须知道 zookeeper 的地址。这个方案有性能问题,0.9 的时候整体大改了一次,brokers 接管了消费进度,consumer 不再需要和 zookeeper 通信了。

至于 producer, 我记得传进去的参数是 broker list, 是不会自动发现其它 brokers 的。
lzdhlsc
2018-07-31 01:45:53 +08:00
新版的 Kafka 使用一个选举出来的 controller 来监听 zookeeper,其他 node 再去和 controller 通信,这么做的目的是为了减少 zookeeper 的压力。bootstrap-servers 会自动发现其他 broker,这也是 bootstrap 的含义。
esolve
2018-08-10 01:16:25 +08:00
@lzdhlsc 如果 bootstrap-servers 挂了呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/475490

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX