高级 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 即可,比如存在文件或者内存中)
-
-
-
太过复杂,需要自行控制 offset,连接哪个分区,找到分区 leader 等
-