V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
esolve
V2EX  ›  问与答

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

  •  
  •   esolve · 2018-07-30 21:53:53 +08:00 · 17270 次点击
    这是一个创建于 2300 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    4 条回复    2018-08-10 01:16:25 +08:00
    SErHo
        1
    SErHo  
       2018-07-30 22:45:06 +08:00 via iPhone
    1. bootstrap servers 如其名,只需要配个两三个就行了,会自动发现其他 broker

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

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

    至于 producer, 我记得传进去的参数是 broker list, 是不会自动发现其它 brokers 的。
    lzdhlsc
        3
    lzdhlsc  
       2018-07-31 01:45:53 +08:00
    新版的 Kafka 使用一个选举出来的 controller 来监听 zookeeper,其他 node 再去和 controller 通信,这么做的目的是为了减少 zookeeper 的压力。bootstrap-servers 会自动发现其他 broker,这也是 bootstrap 的含义。
    esolve
        4
    esolve  
    OP
       2018-08-10 01:16:25 +08:00
    @lzdhlsc 如果 bootstrap-servers 挂了呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2853 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 03:57 · PVG 11:57 · LAX 19:57 · JFK 22:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.