kafka高级api和低级api的区别和联系

高级 API 的特点

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

低级 API 的特点

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

猜你喜欢

转载自blog.csdn.net/u011750989/article/details/81055891