AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

Kafka 3.3 使用 KRaft 共识协议替代 ZooKeeper

作者: Andrea Messetti

  • 2022-11-11
    北京
  • 本文字数:877 字

    阅读完需:约 3 分钟

Kafka 3.3使用KRaft共识协议替代ZooKeeper

Apache 软件基金会发布了包含许多新特性和改进的 Kafka 3.3.1。这是第一个标志着可以在生产环境中使用KRaft(Kafka Raft)共识协议的版本。在几年的开发过程中,它先是在 Kafka 2.8 早期访问版本中发布,然后又在 Kafka 3.0 预览版本中发布。


KRaft 是一种共识协议,可以直接在 Kafka 中管理元数据。元数据的管理被整合到了Kafka当中,而不需要使用像ZooKeeper这样的第三方工具,这大大简化了 Kafka 的架构。这种新的 KRaft 模式提高了分区的可伸缩性和弹性,同时简化了 Kafka 的部署,现在可以不依赖 ZooKeeper 单独部署 Kafka 了。


KRaft 使用了Raft共识算法的一种基于事件的变体,因此得名。



随 KRaft 引入的新的仲裁控制器确保元数据在整个仲裁中可以被准确复制。活动控制器将元数据存储在事件源日志主题中,仲裁中的其他控制器对活动控制器创建的事件做出响应。事件日志定期进行快照,确保日志不会无限增长。与基于 ZooKeeper 的控制器不同,如果出现了问题,仲裁控制器不需要从 ZooKeeper 加载状态,因为集群的内部状态已经分布在元数据主题中。这大大减少了不可用时间窗口,缩短了系统最坏情况恢复时间。


下图显示了使用新的仲裁控制器比使用 ZooKeeper 更快地关闭具有 200 万个分区的 Kafka 集群。



新的 KRaft 共识算法和仲裁控制器使得 Kafka 集群可以扩展到数百万个分区,不仅提升了稳定性,让 Kafka 变得更容易监控、管理和支持,而且让整个系统可以有一个单一的安全模型,使控制器故障转移接近瞬时。


Kafka 社区计划在下一个版本(3.4)中弃用 ZooKeeper,然后在 4.0 版本中完全删除它。


此外,Kafka 3.3 还提供了其他一些新特性,比如添加了与元数据日志处理错误相关的指标,允许用户为其他用户创建委托令牌,以及严格统一的粘性分区器,以缩短分区时间。


对于 Kafka Streams,这个版本增加了源/接收器指标,如消费/生产吞吐量、暂停/恢复拓扑,并集成了 KStream transform()和 process()方法。Kafka Connect 增加了对源连接器的精确一次语义支持。


原文链接

https://www.infoq.com/news/2022/10/apache-kafka-kraft/


相关阅读:

使用 Strimzi 将 Kafka 和 Debezium 迁移到 Kubernetes

Flink 读写多套 Kerberos 认证的 Kafka 方案


2022-11-11 09:2111139

评论

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

用NOSql给高并发系统加速

架构师修行之路

nosql redis 分布式 微服务

“海外同步优惠”与“中国专享折扣”十大必败榜抢先放送

爱极客侠

2020第十三届(南京)智慧城市技术与应用产品展览会

InfoQ_caf7dbb9aa8a

记一次MySQL日期范围查询优化

李印

MySQL SQL优化

手把手教你AspNetCore WebApi:Serilog(日志)

AI代笔

ASP.NET Core web api serilog

MySQL事务隔离级别

长沙造纸农

MySQL 事务隔离级别 mysql事务 事务 MySQL 运维

全屋智能2020第十三届(南京)国际智能家居展览会

InfoQ_caf7dbb9aa8a

从联想ThinkStation工作站,窥见工具文明的新纪元

脑极体

内存条的讲解

亚兰—硅的传奇official

原创 内存 硬件 计算机 哔哩哔哩

讲一讲我所认为的「人生三最」,你或许能够参悟到什么

非著名程序员

程序员 个人成长 时间管理 精力管理

典型的大型互联网应用系统的技术方案和手段

架构师作业第三周学习总结

Wee权

做好分库分表其实很难之二

架构师修行之路

微服务 分库分表

LeetCode题解:111. 二叉树的最小深度,递归,JavaScript,详细注释

Lee Chen

大前端

java安全编码指南之:lock和同步的正确使用

程序那些事

java安全编码 java安全 java安全编码指南 java编码

20年开源老司机手把手教你玩开源——openEuler入门指南

openEuler

Linux 开源 系统操作

Spring Cloud 微服务实践(7) - 日志

xiaoboey

kafka 微服务 Spring Cloud 日志 spring cloud stream

架构1期第四周作业1-大型互联网系统技术梳理

道长

极客大学架构师训练营

产品分析

时间是一个人最好的证明

产品经理 产品设计

对不起,学会这些 Linux 知识后,我有点飘

苹果看辽宁体育

Linux 后端 操作系统 计算机

架构师训练营第 1 期 - 第四周学习总结

Anyou Liu

极客大学架构师训练营

LeetCode题解:104. 二叉树的最大深度,递归,JavaScript,详细注释

Lee Chen

大前端 LeetCode

快讯2020第十三届亚洲国际物联网展览会-南京站

InfoQ_caf7dbb9aa8a

2020第十三届南京国际智慧新零售暨无人售货展览会

InfoQ_caf7dbb9aa8a

架构师训练营第1期第四周作业二

道长

极客大学架构师训练营

架构师训练营第三周作业

Wee权

JDK 中的栈竟然是这样实现的?

王磊

Java 数据结构和算法

关于国际化语言 Intl

西贝

Java 大前端 国际化 格式化

坚持写技术博客一年能有多少收获!

小傅哥

Java 面试 架构师 编程经验 技术博客

区块链教育 丨 首批区块链专业新生正式入学

CECBC

区块链技术 区块链教育

古北水镇的夜

张晓楠

生活 摄影

Kafka 3.3使用KRaft共识协议替代ZooKeeper_架构_InfoQ精选文章