(7)ISR、AR代表什么?ISR伸缩是什么?

AR(Assigned Repllicas):分区中所有副本统称

ISR(In-Sync Replicas):与leader副本保持一定程度同步的副本(包括Leader)

OSR(Out-Sync Relipcas):与leader滞后过多副本(不包括leader)ps:参数配置滞后范围

AR=ISR+OSR。正常情况AR=ISR ,OSR空

LEO(LogEndOffse):下一条待写入消息offset,partition的log最后一条消息offset+1。

HW(HighWatermark):consumer能看到partition位置,partition对应ISR中最小LEO为HW。

    HW为6.表示消费者只能拉取到offset0至5之间的消息,而offset为6的消息对消费者而言是不可见的(图2)

LW(LowWatermark):“低水位”,AR中最小logStartOffset,副本拉取请求(FetchRequest,可能触发新建日志分段而旧的被清理,导致logStartoffset增加)和删除请求DeleteRecordRequest都可能促使LW增长

概要:一、ISR 的伸缩性:定期检查是否伸缩、缓存

           二、何时扩充ISR:1)follower追赶上,2)hw保证一致性

           三、同步过程:写leader,再同步

           四、LSO(LastStableOffset)与kafka的事物有关:读提交,读未提交

一、ISR 的伸缩性

1)Leader跟踪维护ISR中follower滞后状态,落后太多或失效时,leade把他们从ISR剔除。2)OSR中follower“追上”Leader,在ISR中才有资格选举leader

Kafka启动开启ISR相关定时任务“isr-expiration"和”isr-change-propagation"

1、isr-expiration:周期性检测 分区是否缩减ISR

    1)“replica.lag.time.max.ms”设置周期,大小是这个参数一半,默认5000ms

    2)检测到ISR有失效副本时,缩减ISR集合,记录到zk对应/brokers/topics//partition//state节点如下:

    {“controller_cpoch":26,“leader”:0,“version”:1,“leader_epoch”:2,“isr”:{0,1}}

     其中controller_epoch:kafka控制器epoch.leader,前分区leader所在broker的idversion版本号(当前半本固定位1),leader_epoch当前分区leader纪元,变更后isr列表

2、isr-change-propagation:周期性(固定2500ms)检查isrChangeSet(记录变更后缓存)

    1)发现变更,在zk的/isr_change_notification创建isr_change开头持久顺序节点存isrChangeSet信息:如/isr_change_notification/isr_change_0000000000 , 

    2)kafka控制器为/isr_change_notification添加Watcher,子节点变化触发Watcher,通知控制器和管理broker节点更新元数据,删除/isr_change_notification下已处理节点。

    3)避免频繁触发Watcher影响控制器、zk、broker性能,检查:上次ISR变化超过5秒,上次写zk超过60秒

二、何时扩充ISR

1、不断同步,follower的LEO后移,追赶上leader判定准侧是follower的LEO是否小于leader副本HW

2、ISR扩充同样更新zk中的/broker/topics//partition//state节点和isrChangeSet,之后和收缩时相同。ISR增减时,或LEO变时,影响整个分区HW。

    如leader的LEO为9,follower的LEO为7,follower2的LEO为6,判定都处于ISR中,分区HW6,如follower2被剥离ISR,HW为leader和follower中LEO最小值为7(木桶原理

3、HW保证一致性

Leader挂了,在新Leader可读HW,即对外可见最大offset,HW=max(replica.offset)

例:新msg,等ISR中replica同步后,更新HW,才消费,保证如Leader fail,仍可从新Leader中获取(配置延迟时间replica.lag.time.max.ms)

ps:内部Broker读,没HW限制。Folloer.HW = min(Leader.HW, Follower.offset)

图2

三、同步过程

ISR中一个leader和两个follower副本,LEO和HW都为3。消息3和4从生产者发出后先存leader

follower1完全leader而follower2只同步消息3,leader、follower1的LEO为5,Follower2的LEO为4HW最小值4,可以消费offset为0-3消息;所有都成功写入3、4,HW和LEO为5,可消费offset为4消息。

四、LSO(LastStableOffset)与kafka的事物有关

配置消费者事务隔离级别:消费端参数——isolation.level(字符串类型)

1、设置消费到位置

1)“read_committed",消费会忽略事务未提交,只能消费到LSO(LastStableOffset)位置

2)默认”read_uncommitted",可消费HW(High Watermak)位置。

    ps:follower事务隔离级别也“read_uncommitted",且不可改

例:开启kafka事务时,生产者发消息1、2到broker,如没有提交事务,isolation.level=read_committed的消费者看不到消息,而isolation.level=read_uncommitted可到。事务中第一条消息位置标记为firstUnstableOffset

2、LSO还影响kafka消费后量

就是kafka,Log,也称kafka堆积量计算。

1)普通情况:Lag = HW-ConsumerOffset

2)引入了事务:read_uncommitted不受影响,read_committed引入LSO计算:

        未完成事务,LSO=事务第一条消息位置(firstUnstableOffset)

        已经完成=HW

结论:LSO≤HW≤LEO

未完成read_committed,Lag=LSO-ComsumerOffset

https://blog.csdn.net/weixin_43975220/article/details/93190906

https://blog.csdn.net/qq_41568597/article/details/82501738

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容