热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Kafka2.8.0正式发布,增加了哪些新特性?

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

导读:目前 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,当然这个版本一用就是几年🤣当然如果2.8.0版本稳定后建议后面的系统架构设计可以考虑下!

如果对具体的更新内容感兴趣,可以直接登陆官网进行查看:

  • https://kafka.apache.org/downloads

  • https://downloads.apache.org/kafka/2.8.0/RELEASE_NOTES.html

  • https://blogs.apache.org/kafka/entry/what-s-new-in-apache5

 

当然,2.8.0版本还有很多未完善的地方,可能还不适合应用在生产环境。


推荐阅读
  • kafka教程基本概念
    kafka教程基本概念 ... [详细]
  • 2017-11-05卓明_开源中国开源中国开源中国微信号oschina2013功能介绍OSChina开源中国官方微信账号业务系统中,通常会遇到这些场景:A系统向B系统主动推送一个处 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 你知道Kafka和Redis的各自优缺点吗?一文带你优化选择,不走弯路 ... [详细]
  • Spark学习之路(一)Spark概述
    一,什么是spark定义:Spark一种基于内存的快速,通用,可扩展的大数据分析引擎.官网地址:http:spark.apache.org历史:2009年诞生于加州伯 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 如何搭建服务器环境php(2023年最新解答)
    导读:本篇文章编程笔记来给大家介绍有关如何搭建服务器环境php的相关内容,希望对大家有所帮助,一起来看看吧。本文目录一览:1、怎么搭建p ... [详细]
  • 问题描述:域名已经备案,我全部都有,也在后台配置了,但是手机预览,还是请求失败,PC端是可以请求 ... [详细]
  • 马蜂窝数据总监分享:从数仓到数据中台,大数据演进技术选型最优解
    大家好,今天分享的议题主要包括几大内容:带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程;我个人认为数 ... [详细]
  • Flume 开源分布式日志收集系统
    为什么80%的码农都做不了架构师?Flume--开源分布式日志收集系统Flume是Cloudera提供的一个高可用的、高可靠的开源分布式海量日志收集系统 ... [详细]
  • CDH4简介
    原文地址:CDH4简介作者:HadoopChinaWebelievethatduring2012,enterprisedistributionsofHa ... [详细]
  • 一、背景1、起源MapReduce编程模型的思想来源于函数式编程语言Lisp,由Google公司于2004年提出并首先应用于大型集群。同时,Google ... [详细]
author-avatar
窈窕眈眈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有