Kafka 简介
- Apache Kafka是消息引擎系统,也是一个分布式流处理平台(Distributed Streaming Platform)。
- Kafka 社区将其清晰地定位为一个分布式、分区化且带备份功能的提交日志(Commit Log)服务。
- Kafka 在设计之初就旨在提供三个方面的特性:
- 提供一套 API 实现生产者和消费者;
- 降低网络传输和磁盘存储开销;
- 实现高伸缩性架构。
- 简单来说,如果需要快速地搭建消息引擎系统,或者需要搭建的是多框架构成的数据平台且 Kafka 只是其中一个组件,那么推荐使用大数据云公司提供的 Kafka。
- Apache Kafka,也称社区版 Kafka。优势在于迭代速度快,社区响应度高,使用它可以让你有更高的把控度;缺陷在于仅提供基础核心组件,缺失一些高级的特性。
- Confluent Kafka,Confluent 公司提供的 Kafka。优势在于集成了很多高级特性且由Kafka原班人马打造,质量上有保证;缺陷在于相关文档资料不全,普及率较低,没有太多可供参考的范例。
- CDH/HDP Kafka,大数据云公司提供的 Kafka,内嵌 Apache Kafka。优势在于操作简单,节省运维成本;缺陷在于把控度低,演进速度较慢。
Kafka 的版本号
- 对于 kafka-2.11-2.1.1 的提法,真正的Kafka版本号实际上是 2.1.1。
- 前面的 2 表示大版本号,即 Major Version;
- 中间的 1 表示小版本号或次版本号,即 Minor Version;
- 最后的 1 表示修订版本号,也就是 Patch 号。
- Kafka 从 0.7 时代演进到 0.8 之后正式引入了副本机制,至此 Kafka 成为了一个真正意义上完备的分布式高可靠消息队列解决方案。有了副本备份机制,Kafka 就能够比较好地做到消息无丢失。
- 2015 年 11 月,社区正式发布了 0.9.0.0 版本。
- 这是一个重量级的大版本更迭,0.9 大版本增加了基础的安全认证/权限功能,同时使用 Java 重写了新版本消费者 API,另外还引入了 Kafka Connect 组件用于实现高性能的数据抽取。
- 这个版本的另一个好处就是新版本 Producer API 在这个版本中算比较稳定了。
- 2017 年 6 月,社区发布了 0.11.0.0 版本,引入了两个重量级的功能变更:一个是提供幂等性 Producer API 以及事务(Transaction) API;另一个是对 Kafka 消息格式做了重构。