写点什么

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:2111196

评论

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

线性表(数组、链表、队列、栈)详细总结

淡蓝色

Java 数据结构 算法 链表 线性表

【在云端 002】云时代,何以安放我的个人数据

Bora.Don

云计算 云存储

SpringBean的生命周期

编号94530

Java spring Spring Boot 生命周期

工作那么久,才知道的 SOLID 设计原则

闻人

架构师 极客大学架构师训练营

基于业务表 Binlog 的事件驱动设计

理帆

MySQL 事件驱动 Binlog

就餐卡系统架构设计文档

牛珈羽

极客大学架构师训练营

RabbitMQ跨机房迁移数据零丢失

心平气和

RabbitMQ 消息队列

centos7 操作

InfoQ_1c4a1f813eb1

【极客大学】【架构师训练营】【第二周】依赖倒置原则和接口隔离原则

NieXY

极客大学架构师训练营

游戏夜读 | 《老残游记》很有趣

game1night

食堂就餐卡系统设计

John

极客大学架构师训练营

【极客大学】【架构师训练营】【第二周】总结:设计原则

NieXY

极客大学架构师训练营

辟谣:程序员不配谈恋爱?你错的可以!真相来了

码农神说

程序员 漫画 相亲

好奇心, 优秀软件工程师的内核品质

亚伦碎语

读书感悟 随笔杂谈

循序渐进的中台研发

理帆

中台 业务中台

区块链目前实际的应用场景汇总

CECBC

区块链技术 去中心化 应用场景

架构师训练营 - 第三周学习总结

清风徐徐

第四周 学习总结

冯凯

十五年后苹果再次变心

池建强

apple 苹果 芯片 wwdc

wee1作业总结

牛珈羽

极客大学架构师训练营

多个maven项目启动顺序

terrytian

maven

iOS & Android 去马赛克处理

liu_liu

ios android 去马赛克

别兜售你自己不会购买的东西

Neco.W

创业 销售管理 销售

查找算法系列文(一)一文入门二叉树

淡蓝色

Java 数据结构 算法 二叉树

LeetCode 655. Print Binary Tree

liu_liu

算法 LeetCode

ARTS Week5

丽子

设计原则与设计模式

dapaul

极客大学架构师训练营

Redis系列(三):缓存过期该如何剔除?RDB和AOF又是什么?

z小赵

Java redis 高并发 高并发系统设计

每日一题-翻转字符串里的单词

程序员老王

LeetCode

MySQL InnoDB存储引擎 - 事务

Axe

设计模式之单例模式和组合模式

dapaul

极客大学架构师训练营

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