阅读 69

kafka的两种Consumer API

kafka的两种Consumer API

High Level Consumer API和Low Level Consumer API

High Level Consumer API

这个API的重点在于屏蔽,围绕Consumer Group这个概念展开,屏蔽了每个Topic的每个Partition的Offset管理(自动读取zookeeper中该Consumer group的last offset )、Broker失败转移以及增减Partition、Consumer时的负载均衡(当Partition和Consumer增减时,Kafka自动进行负载均衡)

  • 特点
    1.高级 API 写起来简单
    2.不需要去自行去 管理offset,系统通过 zookeeper 自行管理
    3.不需要管理分区,副本等情况,系统自动管理
    4.消费者断线会自动根据上一次记录在 zookeeper 中的 offset去接着获取数据(默认设置1分钟更新一下 zookeeper 中存的的 offset)
    5.可以使用 group 来区分对同一个 topic 的不同程序访问分离开来(不同的 group 记录不同的 offset,这样不同程序读取同一个 topic 才不会因为 offset 互相影响)
  • 缺点
    1.不能自行控制 offset(对于某些特殊需求来说)
    2.不能细化控制如分区、副本、zk 等

Low Level Consumer API

  • 特点
    1.能够开发者自己控制 offset,想从哪里读取就从哪里读取。
    2.自行控制连接分区,对分区自定义进行负载均衡
    3.对 zookeeper 的依赖性降低(如:offset 不一定非要靠 zk 存储,自行存储 offset 即可,比如存在文件或者内存中)
  • 缺点
    1.太过复杂,需要自行控制 offset,连接哪个分区,找到分区 leader 等

原文:https://www.cnblogs.com/keke-coding/p/15352801.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐