kafka版本迭代说明
# Kafka版本规则
在Kafka 1.0.0之前基本遵循4位版本号,比如Kafka 0.8.2.0、Kafka 0.11.0.3等。其中大版本是 0.11 而不是0。所以如果这样来看的话 Kafka 版本号从来都是由 3 个部分构成,即“大版本号 - 小版本号 - Patch 号”。 而从1.0.0开始Kafka就告别了4位版本号,遵循 Major.Minor.Patch 的版本规则,
- Major表示大版本,通常是一些重大改变,因此彼此之间功能可能会不兼容;
- Minor表示小版本,通常是一些新功能的增加;
- Patch表示修订版,主要为修复一些重点Bug而发布的版本。
例如Kafka 2.5.0:
- 前面的 2 表示大版本号,即 Major Version;
- 中间的 5 表示小版本号或次版本号,即 Minor Version;
- 最后的 0 表示修订版本号,也就是 Patch 号。
# Kafka版本演进
0.7.x版本
这是很老的Kafka版本,它只有基本的消息队列功能,连消息副本机制都没有,不建议使用。
0.8.x版本 两个重要特性,一个是Kafka 0.8.0增加了副本机制,另一个是Kafka 0.8.2.0引入了新版本Producer API。0.9.x版本
Kafka 0.9版本
这是一个重大的版本迭代,增加了非常多的新特性,主要体现在三个方面:
- 安全方面:在0.9.0之前,Kafka安全方面的考虑几乎为0。Kafka 0.9.0 在安全认证、授权管理、数据加密等方面都得到了支持,包括支持Kerberos等。
- 新版本Consumer API:Kafka 0.9.0 重写并提供了新版消费端API,使用方式也是从连接Zookeeper切到了连接Broker,但是此时新版Consumer API也不太稳定、存在不少Bug,生产使用可能会比较痛苦;而0.9.0版本的Producer API已经比较稳定了,生产使用问题不大。
- Kafka Connect:Kafka 0.9.0 引入了新的组件 Kafka Connect ,用于实现Kafka与其他外部系统之间的数据抽取。
0.10.x版本
Kafka 0.10 是一个重要的大版本,因为Kafka 0.10.0.0 引入了 Kafka Streams,使得Kafka不再仅是一个消息引擎,而是往一个分布式流处理平台方向发展。0.10 大版本包含两个小版本:0.10.1 和 0.10.2,它们的主要功能变更都是在 Kafka Streams 组件上。
值得一提的是,自 0.10.2.2 版本起,新版本 Consumer API 已经比较稳定了,而且 Producer API 的性能也得到了提升,因此对于使用 0.10.x 大版本的用户,建议使用或升级到 Kafka 0.10.2.2 版本。
0.11.x版本 Kafka 0.11 是一个里程碑式的大版本,主要有两个大的变更,一是Kafka从这个版本开始支持 Exactly-Once 语义即精准一次语义,主要是实现了Producer端的消息幂等性,以及事务特性,这对于Kafka流式处理具有非常大的意义。
另一个重大变更是Kafka消息格式的重构,Kafka 0.11主要为了实现Producer幂等性与事务特性,重构了投递消息的数据结构。这一点非常值得关注,因为Kafka 0.11之后的消息格式发生了变化,所以我们要特别注意Kafka不同版本间消息格式不兼容的问题。
1.x版本 Kafka 1.x 更多的是Kafka Streams方面的改进,以及Kafka Connect的改进与功能完善等。但仍有两个重要特性
- Kafka 1.0.0实现了磁盘的故障转移,当Broker的某一块磁盘损坏时数据会自动转移到其他正常的磁盘上,Broker还会正常工作,这在之前版本中则会直接导致Broker宕机,因此Kafka的可用性与可靠性得到了提升;
- Kafka 1.1.0开始支持副本跨路径迁移,分区副本可以在同一Broker不同磁盘目录间进行移动,这对于磁盘的负载均衡非常有意义。
2.x版本
Kafka 2.x 更多的也是Kafka Streams、Connect方面的性能提升与功能完善,以及安全方面的增强等。
- Kafka 2.1.0开始支持ZStandard的压缩方式,提升了消息的压缩比,显著减少了磁盘空间与网络io消耗。
- kafka2.8.x版本通过自我管理的仲裁来替代ZooKeeper
# kafka 2.x 各大版本发行说明
- 发行说明 - Kafka - 版本 2.8.2 (opens new window)
- 发行说明 - Kafka - 版本 2.8.1 (opens new window)
- 发行说明 - Kafka - 版本 2.8.0 (opens new window)
- 发行说明 - Kafka - 版本 2.7.2 (opens new window)
- 发行说明 - Kafka - 版本 2.7.1 (opens new window)
- 发行说明 - Kafka - 版本 2.7.0 (opens new window)
- 发行说明 - Kafka - 版本 2.6.3 (opens new window)
- 发行说明 - Kafka - 版本 2.6.2 (opens new window)
- 发行说明 - Kafka - 版本 2.6.1 (opens new window)
- 发行说明 - Kafka - 版本 2.6.0 (opens new window)
- 发行说明 - Kafka - 版本 2.5.1 (opens new window)
- 发行说明 - Kafka - 版本 2.5.0 (opens new window)
- 发行说明 - Kafka - 版本 2.4.1 (opens new window)
- 发行说明 - Kafka - 版本 2.4.0 (opens new window)
- 发行说明 - Kafka - 版本 2.3.1 (opens new window)
- 发行说明 - Kafka - 版本 2.3.0 (opens new window)
- 发行说明 - Kafka - 版本 2.2.2 (opens new window)
- 发行说明 - Kafka - 版本 2.2.1 (opens new window)
- 发行说明 - Kafka - 版本 2.2.0 (opens new window)
- 发行说明 - Kafka - 版本 2.1.1 (opens new window)
- 发行说明 - Kafka - 版本 2.1.0 (opens new window)
- 发行说明 - Kafka - 版本 2.0.1 (opens new window)
- 发行说明 - Kafka - 版本 2.0.0 (opens new window)