首页 > 其他分享 >Kafka中ACKS LSO LEO LW HW AR ISR OSR解析

Kafka中ACKS LSO LEO LW HW AR ISR OSR解析

时间:2023-04-05 19:34:11浏览次数:52  
标签:副本 LSO OSR Broker HW replica ISR AR

前言

Kafka中ACKS三种策略,LSO、LEO、LW、HW、AR、ISR、OSR解析。

名称解释

ACKS(Acknowledgments)确认、回执

LW(Low watermark)低水位、LSO(Log start offset)起始偏移量

HW(High watermark)高水位

LEO(Log end offset)日志末尾偏移量

AR(Assigned replica)分配的副本

ISR(In sync replica)正常同步的副本

OSR(Out sync replica)非正常同步的副本

消息生产和消费流程

以单副本为例,生产者(Producer)包装消息指明Topic后消息到达Broker中的分区(Partition),此时数据在Broker服务程序中;Broker将数据写到内核缓存页(Page cache),此时数据在物理内存;最后按照配置的刷盘策略写到磁盘中的消息日志(Log)中。

刷盘频率如果太高,会影响服务性能;如果频率太低,Broker宕机,在内存中未写到磁盘的消息会丢失。所以需要在效率和数据完整性之前做权衡(Trade off)来配置合适的策略。

消费者(Consumer)与服务器建立连接向Broker发送拉取消息请求,请求信息先到达网卡再到达Broker;Broker通过系统调用sendfile将读取到缓存页中的数据直接拷贝到网卡中,也就是零拷贝技术,最终数据返回给消费者。消费者消费完后还需要主动向Broker提交请求来更新消费进度。

image-20210918160436277

ACKS三种类型

生产者(Producer)向Broker发送消息时,可以配置等待确认ACKS(Acknowledgments)的策略0、1和-1。

0代表不等待Broker确认,在这种情况下,不能保证服务器已经收到了记录。

-1和1都需要等待Broker返回确认。

1代表这个确认是Broker将消息写到主(Leader)磁盘后返回,不用等待从(Follower)同步。

-1则代表应答需要等待所有正常同步的副本ISR(In sync replica)写到消息日志(Log)后才会返回。

AR、ISR、OSR

AR(Assigned replica)已分配的副本指主题(Topic)创建时设置的副本,所有副本包括主(Leader)和从(Follower)都归属AR。

ISR(In sync replica)正常同步的副本和OSR(Out sync replica)非正常同步的副本是指从副本的两种状态,有周期性任务将副本按这个状态进行进行划分。

判断条件有两个:(1)根据从和主同步的超时时间判断,配置参数rerplica.lag.time.max.ms=10000;(2)根据从与主消息条数差值盘,配置参数rerplica.lag.max.messages=4000。

AR = ISR + OSR

ISR机制

在ACKS策略配置为-1的时候,需要等待所有ISR(In sync replica)集合中的副本将消息写入消息日志(Log)后才会给生产者(Producer)返回确认。以3个副本(Replica)为例,开始是都是正常同步,此时ISR集合中副本为3个。在同步消息[4]的时候Broker2上的副本出现网络问题或者宕机超过设置的超时时间,周期任务扫描到后将其划分到了OSR(Out sync replica)集合,给与了生产者确认。后续消息确认不再等待这个副本。

当OSR集合中的副本恢复并与主副本同步数据追平后,又会被周期任务扫描划分回ISR集合中。

image-20210918150431039

LSO、LEO、LW、HW

LEO(Log end offset)日志末尾偏移量是新消息写入时将分配的偏移量(Offset)值,从0开始,随着消息不断写入递增。

LW(Low watermark)低水位,代表AR(Assigned replica)集合中最小的LSO(Log start offset)起始偏移量。旧日志的清理和消息删除都有可能促使LW的增长。

HW(High watermark)高水位代表ISR(In sync replica)集合中最小的LEO。

比如当ACKS(Acknowledgments)配置为1时,不需要等待从(Follower)就会给生产者(Producer)返回确认,这就可能会导致从还没来得急同步。此时ISR集合中最小的LEO没有变化,就代表HW不变,消费者还无法消费到新的数据。

消费者能消费的数据 = [LW,HW)

image-20210918153959411

标签:副本,LSO,OSR,Broker,HW,replica,ISR,AR
From: https://www.cnblogs.com/shuiyao3/p/17290655.html

相关文章

  • CS61A_HW04
    Q6题目描述:Writeafunction has_path thattakesinatree t andastring phrase.Itreturns True ifthereisapaththatstartsfromtherootwherethe......
  • 清理 lsof 中 deleted 状态的文件
    磁盘空间一直超80%,du与df结果不一致,找不到相应文件的情况。通常这种情况都是文件被删除,但是还被进程占用1、lsof|grepdeleted#找到未能删除掉的文件,确定占......
  • 2023 03 02 HW EMC A
    Silence.Goodmorning.Goodmorning,Mr.Frank,isyourconnectionokaynow?Yes.No.Yes.Ihadtorejoinmebecausemymicrophoneisnotrightworking,butIsee......
  • beautifulsoup
    Beautifulsouphtml标签转化成树结构结构化输出tag树soup=BeautifulSoup(html_doc,'html.parser')print(soup.prettify())按照点的方式寻找标签soup.title #title......
  • BeautifulSoup模块的使用方法
    本篇文章主要讲bs4模块(BeautifulSoup),这个模块能做么呢?用一句话来概括的话:beautifulsoup4从HTML或XML文件中提取数据的Python库,用它来解析爬取回来的xml。从而从网站中......
  • 【希尔排序ShellSort算法详解】Java/Go/Python/JS/C不同语言实现
    【希尔排序算法详解】Java/Go/Python/JS/C不同语言实现 说明希尔排序(ShellSort)是插入排序的一种改进版,也称递减增量排序算法(DiminishingIncrementSort),其实质是将数......
  • python beautifulsoup 安装教程
    linux版:pipinstallbeautifulsoup4windows版:下载beautifulsoup安装包下载地址:​​​http://www.cr173.com/soft/109251.html​​​下载解压后,将文件夹放到C:/Pyth......
  • drm hwc 的知识点分析/记录
    基本的目录结构.|--Android.bp|--backend||--Backend.cpp||--Backend.h||--BackendClient.cpp||--BackendClient.h||--BackendManager.cpp......
  • Depthwise separable convolution深度可分离卷积、普通卷积
              来源:深度可分离卷积(Depthwiseseparableconvolution)-知乎(zhihu.com) ......
  • 利用C#,SqlXml技术将NorthWind中的所有记录取出并显示出来(包括员工图片)
    经常有人问这个问题,如何取出NorthWind中Employees表中的Photo字段的图片并显示出来?此表中图片显示常见的问题是:由于Northwind数据库內含的image资料最开头有78bytes的表......