由浅到深学习kafka(三):kafka的种类
上一篇文章介绍了Kafka的相关术语,今天来了解一下Kafka的种类
说到Kafka的种类,听起来有点怪怪的,Kafka不是一个开源的框架么?为什么kafka会有不同的种类?
实际上,Kafka有好几种,先拿Hadoop举个例子,Hadoop有多个“种类”,除原生的Apache的Hadoop之外,有些大数据商业公司,将Apache Hadoop封装成自己的产品,发布为不同的”发行版”,例如HDP的Hadoop,CDH的Hadoop,MapR的Hadoop,星环的Hadoop
Kafka也与Hadoop类似,也有着不同的“发行版”
- Apache Kafka
- Confluent Kafka
- Cloudera/Hortonworks Kafka
分别介绍一下各个版本的Kafka
1. Apache Kafka
Apache Kafka是最“正宗”的Kafka,也应该是你最熟悉的发行版了
自Kafka开源后,它便在Apache基金会孵化并最终毕业成为顶级项目,它也被称为社区版Kafka,它是后面其他所有发行版的基础
也就是说,后面提到的发行版要么是原封不动地继承了Apache Kafka,要么是在此之上扩展了新功能,总之Apache Kafka是我们学习和使用Kafka的基础
优点:
- 迭代速度快:对Apache Kafka而言,它现在依然是开发人数最多、版本迭代速度最快的Kafka
- 社区响应高:在2018年度Apache基金会邮件列表开发者数量最多的Top 5排行榜中,Kafka社区邮件组排名第二位,如果使用Apache Kafka碰到任何问题并提交问题到社区,社区都会比较及时地响应,对于开发者比较友好
缺点:
- 仅提供基础功能:它仅仅提供最最基础的组件,特别是对于前面提到的Kafka Connect而言,社区版Kafka只提供一种连接器(connector),即读写磁盘文件的连接器,而没有与其他外部系统交互的连接器,在实际使用过程中需要自行编写代码实现
- 缺乏高级功能:Apache Kafka没有提供任何监控框架或工具。显然在线上环境不加监控肯定是不可行的,你必然需要借助第三方的监控框架实现对Kafka的监控。好消息是目前有一些开源的监控框架可以帮助用于监控Kafka(比如Kafka manager)
2.Confluent Kafka
先说说Confluent公司,2014年,Kafka的3个创始人Jay Kreps、Naha Narkhede和饶军离开LinkedIn创办了Confluent公司,专注于提供基于Kafka的企业级流处理解决方案
2019年1月,Confluent公司成功融资D轮1.25亿美元,估值也到了25亿美元,足见资本市场的青睐,它主要从事商业化Kafka工具开发,并在此基础上发布了Confluent Kafka。Confluent Kafka提供了一些Apache Kafka没有的高级特性,比如跨数据中心备份、Schema
注册中心以及集群监控工具等
Confluent Kafka目前分为免费版和企业版两种
优点:更多功能,定制化需求
免费版:
(1)Schema注册中心:集中管理Kafka消息格式以实现数据前向/后向兼容
(2)REST proxy:开放HTTP接口的方式允许通过网络访问Kafka的各种功能
(3)更多连接器:Confluent公司开发并认证
企业版:
(1)包含免费版所有功能
(2)垮数据中心备份:多个数据中心之间数据的同步
(3)集群监控
(4)技术支持、定制化解决方案
缺点:公司没有发展中国业务的计划,国内普及率较低,国内没有很好的资料
3.Cloudera/Hortonworks Kafka
Cloudera提供的CDH和Hortonworks提供的HDP是非常著名的大数据平台,里面集成了目前主流的大数据框架,能够帮助用户实现从分布式存储、集群调度、流处理到机器学习、实时数据库等全方位的数据处理
很多创业公司在搭建数据平台时首选就是这两个产品,不管是CDH还是HDP里面都集成了Apache Kafka,原本CDH的Kafka和HPD的Kafka应该是两个不同的kafka,但2018年10月两家公司宣布合并,也许以后CDH和HDP的Kafka也会合并,这里就当做一个Kafka
比较
优点:安装、部署、管理、监控方便
用过CDH和HDP的小伙伴都知道,他们的优点就是安装、运维、管理、监控全部统一在控制台中
所有的操作都可以在前端UI界面上完成,而不必去执行复杂的命令,另外这些平台提供的监控界面也非常友好,你通常不需要进行任何配置就能有效地监控
缺点:
1.降低了kafka的掌控,全由界面操作
2.版本滞后:如CDH 6.1.0版本发布时Apache Kafka已经演进到了2.1.0版本,但CDH中的Kafka依然是2.0.0版本,显然那些在Kafka 2.1.0中修复的Bug只能等到CDH下次版本更新时才有可能被真正修复
总结
通过上面的介绍,我们总结一下,如何选择合适的Kafka
- Apache Kafka,也称社区版Kafka。优势在于迭代速度快,社区响应度高,使用它可以让你有更高的把控度;缺陷在于仅提供基础核心组件,缺失一些高级的特性
- Confluent Kafka,Confluent公司提供的Kafka。优势在于集成了很多高级特性且由Kafka原班人马打造,质量上有保证;缺陷在于相关文档资料不全,普及率较低,没有太多可供参考的范例
- CDH/HDP Kafka,大数据云公司提供的Kafka,内嵌Apache Kafka。优势在于操作简单,节省运维成本;缺陷在于把控度低,演进速度较慢