把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

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

评论

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

traefik开放80端口时出现权限拒绝

ilinux

今日头条屏幕适配方案终极版正式发布!

android 程序员 移动开发

从0开始写一个基于Flutter的开源中国客户端(4)—

android 程序员 移动开发

仿新浪微博客户端--界面设计(1)

android 程序员 移动开发

五年开发经验杭州竟找不到工作:Android开发真等于废人?

android 程序员 移动开发

京东把 Elasticsearch 用的真牛逼!

android 程序员 移动开发

什么,还有这么简单的OkHttp源码分析?

android 程序员 移动开发

管理云服务器密码

坚果

云服务器 服务器密码 11月日更

互联网公司不招35岁以上程序员的真相

android 程序员 移动开发

不要花大力气学-Kotlin

android 程序员 移动开发

iOS开发:上架App被拒原因5.1.1Legal Privacy - Data Collection and Storage

三掌柜

11月日更

两年Android开发三面上岸腾讯,这些核心知识点建议收藏

android 程序员 移动开发

不要学得太杂太乱!学习Android开发只要记住这几点!

android 程序员 移动开发

五年前的转正我没有留下,校招进不了大公司就是失败吗?

android 程序员 移动开发

从零开始学数据结构和算法(四)哈希表的思想和二叉树入门

android 程序员 移动开发

优雅保活方案,原来Android还可以这样保活!

android 程序员 移动开发

为什么要学习HarmonyOS以及如何快速上手?

android 程序员 移动开发

为啥mybatis的mapper只有接口没有实现类,但它却能工作?(全网独一份!

android 程序员 移动开发

从零开始实现一个插件化框架(一)

android 程序员 移动开发

为什么有着足够出色的技术,中年程序员依然面临中年危机?

android 程序员 移动开发

代码怎样review?

android 程序员 移动开发

从Android开发者的角度看一看IOS和Flutter中的列表实现

android 程序员 移动开发

三面字节跳动被虐得“体无完肤”,15天读完这份pdf

android 程序员 移动开发

为什么要配置环境变量

android 程序员 移动开发

二本渣渣,3年开发,从web前端转到Android移动端后拿到头条offer的心路历程(面试需要积累

android 程序员 移动开发

Redis 高可用篇:Cluster 集群原理剖析,集群可以无限拓展么

码哥字节

redis cluster NoSQL 数据库 11月日更

为什么要学习HarmonyOS以及如何快速上手?(1)

android 程序员 移动开发

以 29K 成功入职字节跳动,这份《 Android 面试笔记 》让我受益匪浅

android 程序员 移动开发

二本吊打985?看到原因,网友们服气了!

android 程序员 移动开发

互联网公司菜鸟成功逆袭进入阿里钉钉,从月薪 23K直接涨到了年薪65W(Android 岗面经)

android 程序员 移动开发

今日头条技术架构分析

android 程序员 移动开发

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