高级 Consumer API 和低级 Consumer API

  • 高级 API优点

    • 高级 API 写起来简单

    • 不需要自行去管理 offset,系统通过 zookeeper 自行管理

    • 不需要管理分区,副本等情况,系统自动管理

    • 消费者断线会自动根据上一次记录在 zookeeper 中的 offset 去接着获取数据(默认设置1 分钟更新一下 zookeeper 中存的 offset)

    • 可以使用 group 来区分对同一个 topic 的不同程序访问分离开来(不同的 group 记录不同的 offset,这样不同程序读取同一个 topic 才不会因为 offset 互相影响)

  • 高级 API 缺点

    • 不能自行控制 offset(对于某些特殊需求来说)

    • 不能细化控制如分区、副本、zk 等

  • 低级 API 优点

    • 能够让开发者自己控制 offset,想从哪里读取就从哪里读取

    • 自行控制连接分区,对分区自定义进行负载均衡

    • 对 zookeeper 的依赖性降低(如:offset 不一定非要靠 zk 存储,自行存储 offset 即可,比如存在文件或者内存中)

  • 低级 API 缺点

    • 太过复杂,需要自行控制 offset,连接哪个分区,找到分区 leader 等

posted @ 2019-08-06 20:06  北漂屌丝  阅读(358)  评论(0编辑  收藏  举报