3

Apache Kafka 3.0 发布,离彻底去掉ZooKeeper更进一步-InfoQ

 2 years ago
source link: https://www.infoq.cn/article/RTTzLOMBPOx2TsL7dM9T
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Apache Kafka 3.0 发布,离彻底去掉ZooKeeper更进一步-InfoQ

Apache Kafka 3.0 发布,离彻底去掉 ZooKeeper 更进一步

2021 年 9 月 24 日

Apache Kafka 3.0 发布,离彻底去掉ZooKeeper更进一步

Apache Kafka 3.0.0 正式发布,这是一个重要的版本更新,这次发布为 Kafka 彻底去掉ZooKeeper铺平了道路。

因此,在此背景下该版本中最突出的改进是 Kafka 的共识机制 KRaft 也就不足为奇了,该机制仍处于预览阶段。未来,KRaft 将作为 Apache Kafka 的内置共识机制将取代 Apache ZooKeeper,该版本目前提供了 KRaft 控制器和代理来为“名为 __cluster_metadata 的元数据主题分区生成、复制和加载快照”,也就是说这是 Kafka 集群存储、复制元数据的地方。

为了顺利切换到 KRaft,Kafka 团队重新设计了该工具的元数据记录类型,并让 Kafka Controller 负责在 ZooKeeper 和 KRaft 模式下生成生产者 ID。同时,从 3.0 开始,Kafka 生产者默认开启幂等性和所有副本的交付确认。

除此之外,Kafka 团队还尝试调整了当前的用例,这些用例以前很难实现。例如,监控任务通常会产生一些开销,因为无法为多个消费者组获取偏移量。这在 3.0 版的 OffsetFetch API 中得到了纠正。同时对 AdminClient.listOffsets 的改进将帮助用户测试分区的活跃度;它现在提供了查询选项,以返回分区中时间戳和具有最大时间戳的记录的偏移量。

Kafka Streams 的 TaskMetadata 接口提供了三种新方法来检查 commitedOffsets、endOffsets 和 timeCurrentIdlingStarted,这也有助于跟踪系统的健康状况。值得注意的增强功能还可以在数据集成中心 Kafka Connect 中找到,在 3.0 中,KIP-745 使用户能够通过一次调用重新启动所有或仅失败的连接器 Connector 和 Task 实例。

由于这是一个主要版本,还有一些更改可能会导致旧代码无法正常工作。其中包括弃用 Streams 中宽限期的 24 小时默认值,并用明确的新方法替换它们,这些方法要求用户要么将所述时间段设置为零,要么接受宽限期持续时间的自定义值。 

Kafka 团队也开始了一些清理工作,因此用户应该为即将到来的“警告”做好准备。3.0 版本中弃用对 Java 8 和 Scala 2.12 的支持,并且将在 v4.0 中完全删除。除此之外,维护者还决定弃用消息格式 v0 和 v1,将消息格式 v2 作为默认消息格式。之后只能通过转换实现 v0 和 v1 的数据向后兼容性,但这会影响性能,因此建议大家进行升级。

更多详细信息见Kafka的博客

划线
评论
复制
2021 年 9 月 24 日 06:533638
文章版权归极客邦科技InfoQ所有,未经许可不得转载。
轻点一下,留下你的鼓励
76bd868989a3c1453a5a625faccef2b7.jpg

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK