Kafka是一种消息引擎,也是分布式流处理平台。
一、关于种类
“Kafka是一种消息中间件”已被我们所熟知,但是,我们知道Kafka有几种呢?这里说的不是版本,而是如同Linux一样,存在多个组织或公司发布不同的Kafka。目前流行的Kafka有如下几种。
1. Apache Kafka
Apache Kafka也称为社区版Katka,是最“正宗”的Kafka ,也是我们最常用和学习的基础。优势在于迭代速度快,社区响应度高,使用把控度高;缺陷在于仅提供了最最基础的组件,缺失一些高级特性,比如仅仅提供一种连接器,即读写磁盘文件的连接器: Apache kafka没有提供任何监控工具和工具,需要借助第三方监控工具(如: kafka manager , Kafka eagle , jmxtranst+infuxDB+grafana等)实现对kafka监控。
2. Confluent Kafka
由Confluent公司提供,优势在于集成了很多高级特性,由Kafka原创始人打造,质量保证;缺陷在于国内相关资料不全,普及率低,参考案例少。
3. CDH/HDP Kafka
大数据云公司提供的katka,内嵌Apache Kaka.优势是操作简单,节省运维成本;缺陷在于把控度低,演进较慢无论是那种kafka,本质均是内嵌Apache Kafka.
二、关于版本
当前Apache Katka已经更新到2.4版本,也是当前稳定版本。
1、版本号
如上图Apache Kafka官网中的Kafka版本: kafka.2.13-2.4.0.tgz. 2.13代表当前版本编译环境使用的是2.13版本的Scala, kaka实际版本号为2.4.0。
2.4.0又表示的是什么?前面2表示大版本号,即Major Version ;中间4表示小版本号或次版本号,即Minor Version ;最后0表示修订版本号,及Patch号, Kafka社区在1.0.0版本时将版本号从4位演变为3位,如在1.0.0版本之前的版本: kafka.2.11-0.11.3.tgz,大版本号为0.11 ,小版本号0,修订版本号3。
所以无论如何, kafka版本总是由三部分组成:“大版本号-小版本号-Patch号”
2、版本演进
Kafka目前经历了总共7次大版本,分别是0.7,0.8,0.9,0.10,0.11,1.0,2.0,其中小版本和 Patch号有很多
- 0.7版本:只提供了最基础的消息队列功能。
- 0.8版本:正式引入了副本机制,至此 kafka成为一个真正意义上的分布式高可靠的消息队列解决方案,比较好的做到了消息无丢失。0.8.2.0版本引入了新版本的 Producer api,但是存在很多bug。
- 0.9版本:增加了基础的安全认证权限功能;新版本 Producer ap比较稳定,使用ava重写了新版本 Consumer apl,但是存在bug较多,基本不使用;引入了 Kafka Connect组件。
- 0.10版本:引入 kafka streams正式升级成分布式流处理平台
- 0.11版本:提供幂等性 Producer ap以及事务API;对Kaka消息格式做了重构。
- 1.0和2.0版本:主要针对 Kafka streams进行升级改进