初识kafka,先了解这些就够了

本文涉及的产品
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 初识kafka,先了解这些就够了

一、了解Kafka中的相关概念

MQ作为消息中间件,对于我们来说,已经并不陌生了,那么,由于Kafka它在众多的MQ间是非常火热的,那么必然也是我们需要着重关注的中间件之一了,为了更加清晰的了解Kafka,我们先从Kafka的体系结构入手,看看大体上都包含哪些东西。具体请见下图所示:

image.png

其中有一些我们很熟悉的,比如:Producer、Consumer;当然,也有一些陌生的概念,例如:Broker,下面我们就一一说明一下:

Producer】消费者,即:向Kafka中发送消息的消息生产端;

Consumer】消费者,即:从Kafka中获取消息的消息消费端,此处有一点大家需要注意,消费端是采用拉取数据的方式来获得消息的;

Kafka Broker】我们可以将其当做一个Kafka服务实例,或者按照常见的部署方式,即:一台Kafka服务器安装一个Kafka Broker;

ZooKeeper集群】此处作为存储和管理kafka集群元数据,或者辅助Controller选举操作等。

此处需要说明的一点就是,Kafka是希望将原有ZooKeeper负责的内容纳入自己的管辖区域,所以,在Kafka在2.8.0版本的时候,就已经引入了KRaft,而在3.3.1版本是,KRaft就已经可以成为一个真正产品来代替zk;不过因为目前线上很多使用的Kafka集群依然是配合着ZooKeeper集群来使用,所以在上图中,我们依然画出了ZooKeeper集群。

image.png

二、Topic主题

试想一下,当我们要尝试发送/消费消息的时候需要注意什么呢?这有啥需要注意的,发送不就得了!结果,我们发现了一个非常重大的问题,大家都往Kafka中发送消息,所有的消息都混合在了一起,就类似所有快递公司的快递员(Producer端)把快递都扔到了一个大仓库里,结果,去取快递的小伙伴们(Consumer端)面对堆积如山且混乱不堪的“快递山”——疯了。。。

image.png

那怎么办呢?这个好办,我们将原来的这个大屋子按照不同快递公司进行分割。这样,你是哪个快递公司的快递,就把快递放到对应的屋子里就可以了。那么,这个在Kafka中就叫做Topic,也就是我们常说的主题,不过在Kafka中,Topic主题只是一个逻辑概念,并“不是真实”存在的。此时有的同学就该不耐烦了——“不存在?!那你在这儿跟我叨叨半天……”不要着急,要想更进一步了解,我们还需要再了解一个概念,Partition分区

image.png

三、Partition分区

什么是Partition呢?我们还是以刚才的大仓库为例,随着国民收入的愈发增加以及网上购物的兴起,大家网上购买商品的比重大大超过了线下实体店的购买量,那么随着而来的就是快递包裹也成指数增长,为了解决这个问题,怎么办呢?答案貌似很简单,再建造几个仓库不就可以了。对的,就是这样的,这就是我们所说的Partition分区。

image.png

从上面再建造多个仓库的方式,除了可以平摊请求量并提升处理速度之外,我们再考虑一个问题,如果你要给另一个人写封信,这封信非常非常的重要,你怕对法收不到信,怎么办?我们可以将这封信复制成多份,然后发出去,即使信邮寄丢了,没关系,我们还有其他“副本”呢!这其实就是我们Partition的另外一个作用,尽量提高消息的容灾能力

那么,我们了解了以上概念之后,我们就将视野放到Kafka身上,在Kafka中为Partition引入了副本Replica)的概念,它采取的是“一主多从”的配置关系,即:主和从存储的数据都是相同的。那么,为了更加提升容灾能力,不同的副本会保存到不同的Kafka Broker节点上,这样,即使某个Broker宕机掉了,在其他Broker上依然保持着可服务的副本。

image.png

既然副本分为主副本和从副本,那么他们的职责如下所示:

主副本/Leader副本】负责处理集群的读写请求操作。

从副本/Follower副本】只负责同Leader副本的数据同步。

四、ISR&LEO&HW

上面我们介绍完了副本,我们来顺便了解一下五个关键缩写词:

AR(Assigned Replicas)】分区中的所有副本。

ISR(In-Sync Replicase)】所有与leader副本保持正常程度同步的副本(包括leader副本在内)的集合。

OSR(Out-of-Sync Replicase)】与leader副本同步滞后过多的副本(不包括leader副本)的集合。

LEO(Log End Offset)】它标识当前日志文件中下一条待写入消息的offset。

HW(High Watermark)】高水位,它标识了一个特定的消息偏移量(offset),消费者只能拉取到这个offset之前的消息。

从上面对于5个缩写词的介绍,大家可以猜到 AR = ISR + OSR,而如果原有的Leader副本挂掉了,需要选主,则只会从ISR列表中进行选择,而不会去OSR中选择。

而对于LEOHW,我们看下图所示:

image.png

LEO所指向的位置,就是新来消息所待插入的位置;而对于HW来说,取partition中对应的ISR最小的LEO(log-end-offset)作为HW;Consumer最多只能消费到HW所在的位置,每个副本都有HWLeaderFollower各自负责更新自己的HW的状态。

对于Leader新写入的消息,Consumer不能立刻消费,Leader会等待该消息被所有ISR中的副本同步后更新HW,此时消息才能被Consumer所消费。这样就能保证如果Leader所在的broker失效,该消息仍然可以从新选举的Leader中获取。具体逻辑如下图所示:

image.png

今天的文章内容就这些了:

写作不易,笔者几个小时甚至数天完成的一篇文章,只愿换来您几秒钟的 点赞 & 分享

更多技术干货,欢迎大家关注公众号“爪哇缪斯” ~ \(^o^)/ ~ 「干货分享,每天更新」

相关文章
|
机器学习/深度学习 监控 算法
信用风险评估评分卡建模方法及原理| 学习笔记
快速学习信用风险评估评分卡建模方法及原理。
信用风险评估评分卡建模方法及原理| 学习笔记
|
编解码 算法 数据挖掘
【数据挖掘】聚类趋势估计、簇数确定、质量测定等评估方法详解(图文解释 超详细)
【数据挖掘】聚类趋势估计、簇数确定、质量测定等评估方法详解(图文解释 超详细)
462 0
|
canal Kubernetes 关系型数据库
【K8S系列】深入解析k8s网络插件—Canal
【K8S系列】深入解析k8s网络插件—Canal
3243 0
|
9月前
|
机器学习/深度学习 Python
哪些特征导致过拟合?使用ParShap 方法精准定位导致模型泛化能力下降的关键特征
本文探讨了如何识别导致模型过拟合的特征,提出了一种基于SHAP值和偏相关性的新方法——ParShap。通过分析德国健康登记数据集,作者展示了传统特征重要性无法准确反映特征在新数据上的表现,而ParShap能有效识别出过拟合特征。实验表明,移除这些特征可以显著减少过拟合现象,验证了该方法的有效性。
331 79
哪些特征导致过拟合?使用ParShap 方法精准定位导致模型泛化能力下降的关键特征
|
1月前
|
传感器 编解码 数据挖掘
ASTER 全球数字高程模型 V003
ASTER GDEM V3由NASA与METI合作开发,提供全球陆地高程数据,空间分辨约30米,覆盖北纬83°至南纬83°。基于188万景ASTER影像自动生成,含DEM与场景数图层,数据经云掩膜、异常值去除及多源融合优化,适用于地形分析,但可能存在局部伪影。
177 1
|
1月前
|
机器学习/深度学习 自然语言处理 监控
13_命名实体识别:精准提取文本中的关键信息
在当今信息爆炸的时代,人们每天需要处理海量文本数据。如何从这些非结构化文本中高效地提取关键信息,成为了自然语言处理(NLP)领域的核心挑战之一。命名实体识别(Named Entity Recognition,简称NER)技术正是解决这一问题的关键技术,它能够自动识别并分类文本中的人名、地名、组织机构名、时间、日期、金额等具有特定含义的实体。
|
4月前
|
供应链 数据可视化 开发者
供应链可视化工具:穿透全球贸易的迷雾
企业面临三重供应链挑战:多级库存失控、物流黑箱延误、风险传导滞后,导致巨额损失。破局需构建三维透视引擎——库存神经图谱、物流穿透雷达、风险预警熔断器。结合板栗看板、FourKites、Resilinc、Elementum等工具,打造高可视、强响应、韧性强的数字供应链体系,迎接2028年可视化竞争时代。
供应链可视化工具:穿透全球贸易的迷雾
|
10月前
|
容灾 安全 关系型数据库
数据传输服务DTS:敏捷弹性构建企业数据容灾和集成
数据传输服务DTS提供全球覆盖、企业级跨境数据传输和智能化服务,助力企业敏捷构建数据容灾与集成。DTS支持35种数据源,实现全球化数据托管与安全传输,帮助企业快速出海并高效运营。瑶池数据库的全球容灾、多活及集成方案,结合DTS的Serverless和Insight功能,大幅提升数据传输效率与智能管理水平。特邀客户稿定分享了使用DTS加速全球业务布局的成功经验,展示DTS在数据分发、容灾多活等方面的优势。
277 0
|
运维 监控 数据挖掘
交换机镜像之MAC镜像,有哪些分类?
【10月更文挑战第2天】
226 1
交换机镜像之MAC镜像,有哪些分类?
|
7月前
|
前端开发 JavaScript API
2.7K star!这个汉字工具库让中文处理变得超简单,开发者必备!
是一个功能全面的汉字工具库,提供拼音转换、笔画动画、偏旁查询、成语接龙、语音合成等20+种实用功能。支持Web/Node.js/小程序多端运行,仅需简单API调用即可实现复杂中文处理,是教育类应用、输入法开发、游戏设计的瑞士军刀
237 11