一、Kafka 起源
Kafka 是目前主流的分布式消息引擎及流处理平台,最初由 LinkedIn 开发,为了解决 LinkedIn 数据管道问题而诞生。Jay Kreps 是当时 LinkedIn 的首席工程师。
Kafka 简要记事如下:
- 2011年初开源;
- 2012年10月23日,从Apache软件基金会的孵化器项目毕业;
- 2014年11月,几个曾在领英为Kafka工作的工程师,创建了名为 Confluent 的新公司,该公司致力于为企业开发提供支持、为 Kafka 提供培训。 (LinkedIn 和 Confluent 两家公司,一直在参与 Kafka 项目的开发和维护)
二、版本变更
1. 命名规则
1.x之前,基本遵循4位版本号(并非严格遵守),例如:0.8.2.0,0.9.0.1,0.10.2.2。
1.x之后,改成 Major.Minor.Patch 三位版本规则
- Major表示大版本,通常是一些重大改变,功能可能会有部分不兼容;
- Minor表示小版本,通常是一些新功能的增加;
- Patch表示修订版,主要为修复一些重点Bug而发布。
2. 版本变更
Kafka 总共发布了7个大版本,简要信息如下:
3. Java 与 Scala 之争
在 Kafka 的历史变迁中,一共有两个大版本的生产者客户端:
- Kafka 开源之初使用 Scala 语言编写的客户端,可以称之为旧生产者客户端或 Scala 版生产者客户端;
- 从 Kafka 0.9.x 版本开始推出的使用 Java 语言编写的客户端,可以称之为新生产者客户端或 Java 版生产者客户端,它弥补了旧版客户端中存在的诸多设计缺陷。 其实 Java 与 Scala 之间也不存在什么莫须有的争端,据说是社区招了一批 Java 程序员,而之前的 Scala 程序员隐退了,这个当故事听听就好了。
4. 与 Zookeeper 和 Java 的版本兼容
Kafka 使用 Zookeeper 保存集群的元数据信息和消费者信息
截止目前 2021年6月24日,Kafka 最新版本为 2.8.0,该版本内部的 Quorum 控制器取代了 ZooKeeper,使得用户第一次在没有 ZooKeeper 的情况下运行 Kafka,这项功能被称为 Kafka Raft 元数据模式,缩写为 KRaft 模式。不过这个版本还有很多功能特性尚未支持,不建议用于线上环境。
总之,期待 Kafka 脱离 Zookeeper 完成独立运行的时刻早点到来。
小结
本篇文章,主要讲述了 Kafka 的起源、版本变更历史,以及与 Zookeeper 的版本兼容关系,是入门级别的一些闲聊。
参考:
kafka.apache.org/downloads
kafka.apache.org/documentati…
《深入理解 Kafka 核心设计与实践原理》
《Kafka权威指南》
www.confluent.io/blog/kafka-…
另外,也参考了一些博客,但是内容及其相似,因为找不到源头所以暂不引用