导读:目前 Kafka 已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。目前越来越多的开源分布式处理系统如 Cloudera、Storm、Spark、Flink 等都支持与 Kafka 集成。

2021年4月19日,Kafka官方发布了2.8.0版本,包含了很多新特性!其中,我觉得最感兴趣的是提到的第一条特性-Kafka用自管理的Quorum代替ZooKeeper管理元数据。

之前Kafka使用ZooKeeper来存储有关分区和代理的元数据,并选择一个代理作为Kafka控制器。目前删除对ZooKeeper的依赖。这将使Kafka够以更具扩展性和更强大的方式管理元数据,从而支持更多分区。它还将简化Kafka的部署和配置。

Kafka 2.8.0 用自管理的Quorum代替ZooKeeper管理元数据,官方称这个为 "Kafka Raft metadata mode",即KRaft mode

KRaft最大的好处在于移除了ZooKeeper,这样我们无需维护zk集群,只要维护Kafka集群就可以了

请注意,此图有些误导。除控制器外的其他代理可以并且确实与ZooKeeper进行通信。因此,实际上,应该从每个经纪人到ZK划清界限。但是,绘制很多线会使该图难以阅读。

可能有一些刚接触Kafka的小伙伴还不明白这到底代表着什么。

在kafka 2.8.0之前体系架构包括若干 Producer、若干 Broker、若干 Consumer,以及一个 ZooKeeper 集群,如下图所示。其中 ZooKeeper 是 Kafka 用来负责集群元数据的管理、控制器的选举等操作的。Producer 将消息发送到 Broker,Broker 负责将收到的消息存储到磁盘中,而 Consumer 负责从 Broker 订阅并消费消息。

不太理解的小伙伴可以查看下Kafka 2.8.0之前的部署和一些教程发现和新版本的差异还是很大的,你会发现增加了很多的成本,但短期可能会带来很多不便,基于长远的角度思考,这次改动对于Kafka的长远发展利大于弊。

Kafka 的代码库中还有很大一部分是负责在多个集群中安排日志、分配领导权、处理故障等。这使的 Kafka 成为一个可靠和可信的分布式系统。而ZooKeeper就是分布式代码工作的关键。在以往的版本中,ZooKeeper 提供了权威的元数据存储,这些元数据存储了系统中最重要的东西,例如分区可以存在哪里,哪个组件是主导等等等等

但不管怎么样,ZooKeeper 是一个基于一致日志的特殊文件系统/触发器API。而Kafka 是一个建立在一致日志之上的发布/订阅系统。

Kafka 2.8.0包括许多重要的新功能。以下是重要变化

简单点可以理解为:

  • 抢先体验,kafka通过自我管理的仲裁来替代ZooKeeper(很快,Apache Kafka将不再需要ZooKeeper。)

  • 增加集群描述API

  • 在SASL_SSL监听器上支持彼此TLS认证

  • JSON请求/响应的debug日志

  • 限制broker连接创建率

  • Topic识别

  • 在Connect REST API中公开任务配置

  • 更新 Streams FSM 以澄清ERROR状态的含义

  • 扩展 StreamJoined 以允许更多的存储配置

  • 更方便的TopologyTestDriver构造

  • 引入 Kafka-Streams 专用的未捕获异常处理程序

  • 启动和关闭Streams线程的API

  • 改进 TimeWindowedDeserializer 和 TimeWindowedSerde 处理窗口大小

  • 改善Kafka流中的超时和重试情况

智哥现在用的版本还停留在Kafka 2.2.1,当然这个版本一用就是几年

Kafka 2.8.0 正式发布,增加了哪些新特性?相关推荐

  1. TailwindCSS v3.0 正式发布!一大波新特性来袭!

    作者 | 一只图雀 来源 | 程序员巴士 今天给大家介绍一篇关于 Tailwind 最新发布的 v3.0 相关的内容. 2021 年 12 月 10 日,TailwindCSS 的创始人 Adam W ...

  2. 【CSS】1209- TailwindCSS v3.0 正式发布!一大波新特性来袭!

    大家好,我是皮汤.最近一直在研究 TailwindCSS 相关的内容,打算将其用在接下来的各种项目中,之前也写过关于 CSS 工程化方面的文章:2021 年你需要之前的 CSS 工程化技术,今天给大家 ...

  3. android5.0及以上版本的新特性

    android5.0及以上版本的新特性 Android5.0 Android6.0 Android7.0 Android8.0 Android9.0 Android5.0 Android 5.0 除了 ...

  4. android5.0后新特性修改标题头,Android5.0中Material Design的新特性

    Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干净的排版和简单的布局,以此来突出 ...

  5. Android 8.0正式发布 奥利奥新功能惊人

    尽管 Android 刷版本号的步伐年年加快,但每年带给用户的惊喜从未减少.经历了四个开发者预览版的洗礼后,Android 8.0 终于在今天凌晨迎来了正式版发布. 如果你还不清楚 Android O ...

  6. C# 8.0的三个令人兴奋的新特性

    C# 语言是在2000发布的,至今已正式发布了7个版本,每个版本都包含了许多令人兴奋的新特性和功能更新.同时,C# 每个版本的发布都与同时期的 Visual Studio 以及 .NET 运行时版本高 ...

  7. C# 8.0的三个令人兴奋的新特性 1

    C# 语言是在2000发布的,至今已正式发布了7个版本,每个版本都包含了许多令人兴奋的新特性和功能更新.同时,C# 每个版本的发布都与同时期的 Visual Studio 以及 .NET 运行时版本高 ...

  8. python3字符串转数字_Python 3.6.0 正式版发布附新特性说明

    计划在上周发布的Python3.6.0推迟到昨日发布,你可以点击这里下载最新版的Python3.6.0,那么此次的新版本带来了哪些新的特性呢?下面我们去看一下Python的官方文档. What's N ...

  9. Android 10 终于来了!增加了不少新特性

    前言 Android 10 正式发布了,根据官网的介绍,聚焦于隐私可控.手机自定义与使用效率,此版本主要带来了十大新特性: 智能回复 使用机器学习来预测你在回复信息时可能会说些什么,这项功能在 And ...

最新文章

  1. 面向高精度领域的视觉伺服算法汇总
  2. ios视图frame和bounds的对比
  3. Delphi下的GDI+编程[2] DrawLine - 绘制直线
  4. 几个不错的自己到的少的游戏站
  5. 如何用python绘制灰度直方图_Python Opencv任意形状目标检测并绘制框图实例
  6. linux压缩、解压操作
  7. spring boot 开源项目汇总
  8. 算法Top(K)问题
  9. 聊聊为什么 IDL 只能扩展字段而非修改
  10. MFC初步教程(一)
  11. 【渝粤教育】21秋期末考试网络市场调查与预测10143k2
  12. keras 多分类一些函数参数设置
  13. freemarker中空值“”,null值的判断
  14. Atitit 架构的艺术 目录 1. 按照技术站分类 1 1.1. LAMP架构,到IOE架构,再到分布式架构 1 1.2. Ssh ssm 1 2. Bs cs web hybrid架构 1 3.
  15. mysql两个修改事务相互阻塞_MySQL 5.7并发复制和mysqldump相互阻塞引起的复制延迟...
  16. 怎样用计算机算出别人的出生日期,Excel根据出生日期计算年龄的步骤
  17. Xshell 下载地址
  18. Android--Recovery模块之恢复出厂设置
  19. 新浪微创投狩猎季:5家LP皆VC大佬 人气日渐高涨
  20. Java num+=1、num++与num=num+1的区别(通俗易懂,附带例子)

热门文章

  1. 教授专栏11|张处:企业支付政策和信用风险:来自信用违约掉期(CDS)市场的证据
  2. linux切换ip地址脚本,批处理实现的ip地址切换的复杂脚本
  3. 镜子中的 Google
  4. python小车行走_[PYTHON系列教程]→控制小车
  5. 我彻底服了,大牛讲解信号与系统(通俗易懂)
  6. [Linux] 如何在 Linux 电脑上制作专业的视频教程
  7. 兼容所有浏览器的网页播放器
  8. RSTP配置_思科模拟器
  9. 借呗还完之后为什么关闭了_蚂蚁借呗怎么突然关闭了 蚂蚁借呗关闭后怎么重开...
  10. 每日一题 No.4 男女搭配干活不累