InfoQ 编辑部出品——2021年度技术盘点与展望 了解详情
写点什么

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

  • 2021 年 9 月 24 日
  • 本文字数:896 字

    阅读完需:约 3 分钟

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 日 14:535401

评论

发布
暂无评论
发现更多内容

当音乐学博士搞起编程...

程序猿DD

Spring Frame

区块链科普系列:区块链是什么?

CECBC

区块链

iOS性能优化 — 五、App启动优化

iOSer

ios 性能优化 性能分析

DevSecOps安全检查清单

啸天

安全 DevSecOps 应用安全

区块链十年与传统金融的变化

CECBC

区块链 金融

即构小程序直播组件集成教程

ZEGO即构

面试阿里Java岗,技术总监真正关心的核心能力是什么?

Java架构追梦

Java 编程 架构

Soul 网关源码阅读(四)Dubbo请求概览

Java 源码阅读 网关

Java 程序经验小结:剖析@SuppressWarinings注解

后台技术汇

28天写作

在数据分析、挖掘方面,有哪些ETL工具值得推荐?

会飞的鱼

大数据 kettle 海豚调度 批量任务 ETL

Soul 网关源码阅读(二)代码初步运行

Java 源码阅读 网关

用AI「驯服」人类幼崽,手头有娃的可以试试

博文视点Broadview

人工智能 联邦学习 强化学习 集成学习 技术宅

为什么我认为 Deno 是一个迈向错误方向的 JavaScript 运行时?

hylerrix

typescript rust nodejs deno V8

Soul 网关源码阅读(一) 概览

Java 源码阅读 网关

极客训练营知识点思维导图

jorden wang

不同公司产品经理岗位对比

LouisN

「产品经理训练营」第一章作业

Sòrγy_じò ぴé

产品经理训练营

Nginx 的负载均衡模式有哪些?它的实现原理是什么?

码农架构

nginx 架构 微服务

Volcano架构设计与原理介绍

华为云原生团队

大数据 AI 云原生 高性能 批量计算

敏捷里为何倡导固定迭代周期?

万事ONES

敏捷开发 研发管理 迭代

特斯拉自建ERP的背后

明道云

初识ClickHouse——安装与入门

Simon

Clickhouse

解读容器的 2020:寻找云原生的下一站

阿里巴巴云原生

Docker 云计算 Serverless 容器 云原生

“反垄断”来袭,对产业区块链有什么启发

CECBC

市场垄断

物流快递公司APP架构设计

jorden wang

Soul 网关源码阅读(三)请求处理概览

Java 源码阅读 网关

智能量化对冲搬砖套利交易软件APP系统开发

系统开发

一文带你探究Sentinel的独特初始化

华为云开发者社区

redis sentinel 框架

架构师训练营W13作业

Geek_f06ede

矿机挖矿APP系统模式开发平台

v16629866266

从CPU到XPU进化,英特尔对业界放了什么大招?

新闻科技资讯

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