AICon日程100%就绪,9折倒计时最后一周 了解详情
写点什么

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

评论

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

Java大厂74道高级面试合集,附面试题

Geek_f90455

Java 程序员 后端

啊哈!这段时间的学习感受

Nydia

8月日更

架构实战营-毕业设计

En wei

架构实战营

从 Druid 控制台(Druid console)中进行查询

HoneyMoose

ECMAScript 2020(ES11)新特性简介

程序那些事

JavaScript ecmascript nodejs ES11 程序那些事

【Flutter 专题】79 图解 Android Native 集成 FlutterBoost 小尝试 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

用5W1H告诉你如何规划合理的测试策略

华为云开发者联盟

敏捷 敏捷开发 测试 测试策略 缺陷

Java多线程从基础到并发模型统统帮你搞定!面试总结

Geek_f90455

Java 程序员 后端

Java开发热门前沿知识,架构师必备技能

Geek_f90455

Java 程序员 后端

MediaMuxer实用封装

Changing Lin

8月日更

十大排序算法--选择排序

Ayue、

排序算法 8月日更

Java多线程实现方式及并发与同步,写的太详细了

Geek_f90455

Java 程序员 后端

在线短视频缩略图剪切工具

入门小站

工具

波宝TronLink钱包APP系统开发介绍

Geek_23f0c3

钱包系统开发 DAPP智能合约交易系统开发 波宝钱包

☕️【系统设计】如何设计出优雅且实用的API接口

码农架构

Java 架构设计 架构设计实战

Java工程师跳槽经验分享,看完跪了

Geek_f90455

Java 程序员 后端

Java开发岗还不会这些问题,一文轻松搞定

Geek_f90455

Java 程序员 后端

docker部署redis记录,楼主亲测无异常

小鲍侃java

8月日更

Seldon 使用 (五): engine & graph

托内多

tensorflow kubeflow seldon

招商银行信用卡卡号识别项目(第一篇),Python OpenCV 图像处理取经之旅第 53 篇

梦想橡皮擦

8月日更

分布式存储系统可靠性:系统量化估算

vivo互联网技术

分布式存储

Java开发者值得深入思考的几个问题,建议收藏

Geek_f90455

Java 程序员 后端

FastApi-01-初识

Python研究所

FastApi 8月日更

几百行代码写个Mybatis,原理搞的透透的!

小傅哥

Java spring 源码 mybatis 代理

Java开发究竟该如何学习,一文轻松搞定

Geek_f90455

Java 程序员 后端

外包学生管理系统架构设计文档

君子意如何

架构师训练营第 1 期 「架构师训练营第 1 期」

架构实战营毕业总结

En wei

架构实战营

Rust从0到1-模式-使用场景

rust 模式 Patterns Matching

手撸二叉树之最小高度树

HelloWorld杰少

数据结构与算法 8月日更

FILECOIN矿池挖矿APP系统开发案例

获客I3O6O643Z97

挖矿矿池系统开发案例 fil挖矿

Java开发者必须收藏的8个开源库,吊打面试官系列!

Geek_f90455

Java 程序员 后端

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