Apache Kafka 是一个分布式开源流平台,被广泛应用于各大互联网公司。Kafka 设计之初被用于消息队列,自 2011 年由 LinkedIn 开源以来,Kafka 迅速从消息队列演变为成熟的事件流处理平台。
Kafka 具有四个核心 API,借助这些 API,Kafka 可以用于以下两大类应用:
-
建立实时流数据管道,可靠地进行数据传输,在系统或应用程序之间获取数据。
-
构建实时流媒体应用程序,以改变系统或应用程序之间的数据或对数据流做出反应。
近日,Apache Kafka 3.0.0 正式发布,这是一个重要的版本更新,其中包括许多新的功能。
例如:
-
已弃用对 Java 8 和 Scala 2.12 的支持,对它们的支持将在 4.0 版本中彻底移除,以让开发者有时间进行调整。
-
Kafka Raft 支持元数据主题的快照,以及 self-managed quorum 方面的其他改进。
-
废弃了消息格式 v0 和 v1。
-
默认情况下为 Kafka Producer 启用更强的交付保证。
-
优化了 OffsetFetch 和 FindCoordinator 请求。
-
更灵活的 MirrorMaker 2 配置和 MirrorMaker 1 的弃用。
-
能够在 Kafka Connect 的一次调用中重新启动连接器的任务。
-
连接器日志上下文和连接器客户端覆盖现在是默认启用的。
-
增强了 Kafka Streams 中时间戳同步的语义。
-
修改了 Stream 的 TaskId 的公共 API。
-
在 Kafka Streams 中,默认的 serde 变成了 null,还有一些其他的配置变化。
-
Kafka 代理、生产者、消费者和管理客户端
①KIP-630:Kafka Raft 快照
我们在 3.0 中引入的一个主要功能是 KRaft 控制器和 KRaft 代理能够为名为 __cluster_metadata 的元数据主题分区生成、复制和加载快照。
Kafka 集群使用此主题来存储和复制有关集群的元数据信息,如代理配置、主题分区分配、领导等。
随着此状态的增长,Kafka Raft Snapshot 提供了一种有效的方式来存储、加载和复制此信息。
②KIP-746:修改 KRaft 元数据记录
自第一版 Kafka Raft 控制器以来的经验和持续开发表明,需要修改一些元数据记录类型,当 Kafka 被配置为在没有 ZooKeeper(ZK)的情况下运行时使用这些记录类型。
③KIP-730:KRaft 模式下的生产者 ID 生成
在 3.0 和 KIP-730 中,Kafka 控制器现在完全接管了生成 Kafka 生产者 ID 的责任。
控制器在 ZK 和 KRaft 模式下都这样做。这让我们更接近桥