Kafka核心技术与实战——05 | 聊聊Kafka的版本号
- Kafka 版本命名
- Scala 2.11 - kafka_2.11-2.1.1
- 前面的版本号是编译 Kafka 源代码的 Scala 编译器版本。Kafka 服务器端的代码完全由 Scala 语言编写,Scala 同时支持面向对象编程和函数式编程
- 真正的 Kafka 版本号实际上是 2.1.1
- 前面的 2 表示大版本号,即 Major Version;中间的 1 表示小版本号或次版本号,即 Minor Version;最后的 1 表示修订版本号,也就是 Patch 号
- “大版本号 - 小版本号 - Patch 号”
- Kafka 版本演进
- Kafka 目前总共演进了 7 个大版本,分别是 0.7、0.8、0.9、0.10、0.11、1.0 和 2.0,其中的小版本和 Patch 版本很多
- 我们先从 0.7 版本说起,这个版本只提供了最基础的消息队列功能,甚至连副本机制都没有
- Kafka 从 0.7 时代演进到 0.8 之后正式引入了副本机制,至此 Kafka 成为了一个真正意义上完备的分布式高可靠消息队列解决方案
- 社区正式发布了 0.9.0.0 版本。在我看来这是一个重量级的大版本更迭,0.9 大版本增加了基础的安全认证 / 权限功能,同时使用 Java 重写了新版本消费者 API,另外还引入了 Kafka Connect 组件用于实现高性能的数据抽取
- 0.10.0.0 是里程碑式的大版本,因为该版本引入了 Kafka Streams。从这个版本起,Kafka 正式升级成分布式流处理平台
- 社区发布了 0.11.0.0 版本,引入了两个重量级的功能变更:一个是提供幂等性 Producer API 以及事务(Transaction) API;另一个是对 Kafka 消息格式做了重构
- 最后我合并说下 1.0 和 2.0 版本吧,因为在我看来这两个大版本主要还是 Kafka Streams 的各种改进,在消息引擎方面并未引入太多的重大功能特性。如果你是 Kafka Streams 的用户,至少选择 2.0.0 版本吧
- 最后还有个建议,不论你用的是哪个版本,都请尽量保持服务器端版本和客户端版本一致,否则你将损失很多 Kafka 为你提供的性能优化收益
- 小结
- 我希望现在你对如何选择合适的 Kafka 版本能做到心中有数了。
- 每个 Kafka 版本都有它恰当的使用场景和独特的优缺点,切记不要一味追求最新版本。
- 事实上我周围的很多工程师都秉承这样的观念:不要成为最新版本的“小白鼠”
- 考虑客户端的版本与服务端版本的兼容问题
行者无疆,始于足下
行走,思考,在路上