1.kafka简介
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统。
在kafka官网下载安装包时,能看到如下格式:
kafka_2.12,这个数字代码scala的版本,kafka使用的开发语言是scala。而2.8.0则代表的是kafka的版本。遵循 Major.Minor.Patch 的版本规则,
- Major表示大版本,通常是一些重大改变,因此彼此之间功能可能会不兼容;
- Minor表示小版本,通常是一些新功能的增加;
- Patch表示修订版,主要为修复一些重点Bug而发布的版本
Kafka总共发布了7个大版本,分别是0.7.x、0.8.x、0.9.x、0.10.x、0.11.x、1.x及2.x版本。而在1.0.0之前,Kafka使用的是4位版本号,例如:kafka_2.10-0.10.0.1
2.kafka版本演进
(1) 0.7.x版本:只具有基本的消息队列功能,无消息副本机制。
(2) 0.8.x版本: 引入了副本机制,并引入了新版本Producer API
(3) 0.9.x版本:增加权限和认证,使用Java重写了新的consumer API,Kafka Connect功能;在此版本开始,kafka server自己维护offset信息,但高可用还得依赖zookeeper。在该版本还不建议用最新的consumer API,因为bug比较多。
(4) 0.10.x版本:引入Kafka Streams功能,正式升级成分布式流处理平台;建议使用新版consumer API
(5) 0.11.x版本:producer API幂等,事务API,消息格式重构;
(6) 1.x版本:Kafka Streams以及Kafka Connect的改进与功能完善等,磁盘的故障转移,支持副本跨路径迁移;
(7) 2.x版本:Kafka Streams、Connect方面的性能提升与功能完善,和安全方面的增强,开始支持ZStandard的压缩方式,提升了消息的压缩比,显著减少了磁盘空间与网络io消耗。在2.8版本,kafka server的高可用不依赖zookeeper,使用自己内嵌的KRaft协议替代。