成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

九張圖帶你理解 Kafka 中高水位 HW

開(kāi)發(fā) 架構(gòu)
高水位 HW 這個(gè)概念在 Kafka 中標(biāo)記消息是否可以被消費(fèi)者消費(fèi),這個(gè)概念跟 LEO 有著重要的關(guān)系。本文介紹了 LEO 和 HW 的更新機(jī)制,希望對(duì)你理解 HW 有所幫助。

大家好,我是君哥。

Kafka 高水位(簡(jiǎn)稱 HW)是 Kafka 中非常重要的一個(gè)概念,今天來(lái)聊一聊 HW。

1 HW 簡(jiǎn)介

HW 是 Kafka 中 Offset 的一個(gè)值,HW 作為一個(gè)邊界,Offset 小于 HW 的消息被稱為已提交消息,這部分消息可以被消費(fèi)者進(jìn)行拉取消費(fèi),大于等于 HW 的消息被稱為未提交消息,不能被消費(fèi)者拉取。如下圖:

圖片圖片

Offset 小于 108 的消息可以被消費(fèi)者消費(fèi),Offset 大于等于 108 的消息不能被消費(fèi)者消費(fèi) 。

2 LEO 簡(jiǎn)介

Kafka 中跟 Offset 相關(guān)的還有一個(gè)重要概念叫 LEO(Log End Offset)。LEO 表示 Offset 中的最后一個(gè)位置,也就是新消息寫(xiě)入的第一個(gè)位置,這個(gè)位置還沒(méi)有消息。比如下圖中的 114 這個(gè)位置,新消息寫(xiě)入時(shí)會(huì)從這個(gè)位置開(kāi)始存儲(chǔ)。

圖片圖片

3 HW 更新機(jī)制

對(duì)于 Kafka 的一個(gè)分區(qū)來(lái)說(shuō),分區(qū)的所有副本都有 HW 和 LEO 這 2 個(gè)重要屬性,不光是 Leader 副本。但是 Leader 副本的 HW 值被作為整個(gè)分區(qū)的 HW。

因此,分區(qū)每個(gè)副本所在的 Broker 都保存了自己的 HW 和 LEO 值,而 Leader 副本所在的 Broker 節(jié)點(diǎn)還保存了 Follower 副本的 HW 和 LEO。

注意:這里說(shuō)的 Follower 必須跟 Leader 保持同步,一般用 2 個(gè)條件來(lái)判斷:

  • Follower 在 ISR 集合中;
  • Follower 中 LEO 值落后于 Leader LEO 值的時(shí)間,不超過(guò)參數(shù)(replica.lag.time.max.ms)的值,默認(rèn) 10s。

如下圖,partition-test 這個(gè)分區(qū)有 3 個(gè)副本,Leader 和 Follower1、Follower2,F(xiàn)ollower1 和 Follower2 所在的 Broker1 上保存了自己的 HW 和 LEO,而 Leader 所在的 Broker0 不僅保存了自己的 HW 和 LEO,還保存了 Follower1 跟 Follower2 的 HW 和 LEO。

圖片圖片

3.1 Follower 更新

Broker1 和 Broker2 作為分區(qū)的 Follower 副本,會(huì)從 Leader 拉取消息,寫(xiě)入本地磁盤,然后更新 LEO。更新成功 LEO 后,比較自己的 LEO 值跟 Leader 副本發(fā)送的 HW 值,取較小的作為自己的 HW。如下圖:

圖片圖片

3.2 Leader 更新

從 3.1 中的圖可以看到,Leader 收到 Follower 拉取消息請(qǐng)求后,會(huì)根據(jù) Follower 副本發(fā)送的拉取請(qǐng)求中的 Offset 更新本地保存的 Follower 的 LEO。同時(shí) leader 會(huì)更新自己的 HW = min LEO of{Leader、Follower1、Follower2}。

需要注意的是,Leader 是不能更新 Follower 的 HW 的。

下面看一下 Leader 副本收到生產(chǎn)者發(fā)送的消息時(shí)是怎樣更新自己的 LEO 和 HW 的。如下圖:

圖片圖片

4 一個(gè)示例

下面以 Leader 只有一個(gè) Follower 的場(chǎng)景來(lái)說(shuō)明 LEO 和 HW 的更新過(guò)程。

初始狀態(tài),Leader 所在的 Broker 節(jié)點(diǎn)保存的 Leader 的 LEO 和 HW 都是 0,保存的 Follower 的 LEO = 0。

圖片圖片

生產(chǎn)者發(fā)送一條消息后,Leader 節(jié)點(diǎn)更新 LEO = 1,此時(shí) Leader 的 HW 是 0。Follower 還沒(méi)有發(fā)起拉取請(qǐng)求,所以 Follower 的 LEO 任然是 0,Leader 的 HW 是 0。

圖片圖片

Follower 第一次拉取消息,發(fā)送給 Leader 的 Offset = 0,Leader 節(jié)點(diǎn)收到請(qǐng)求后,因?yàn)?Offset = 0,所以本地保存的 Follower LEO 不變。Leader 節(jié)點(diǎn)返回消息給 Follower,F(xiàn)ollower 節(jié)點(diǎn)寫(xiě)入消息后更新自己的 LEO = 1。

圖片圖片

Follower 第二次拉取消息,發(fā)送給 Leader 的 Offset = 1,Leader 節(jié)點(diǎn)收到請(qǐng)求后,更新本地保存的 Follower LEO = 1,更新自己的 HW = 1 并返回給 Follower,F(xiàn)ollower 收到 Leader 發(fā)送的 HW 后更新自己的 HW = 1。

圖片圖片

總結(jié)

高水位 HW 這個(gè)概念在 Kafka 中標(biāo)記消息是否可以被消費(fèi)者消費(fèi),這個(gè)概念跟 LEO 有著重要的關(guān)系。本文介紹了 LEO 和 HW 的更新機(jī)制,希望對(duì)你理解 HW 有所幫助。

責(zé)任編輯:武曉燕 來(lái)源: 君哥聊技術(shù)
相關(guān)推薦

2020-06-28 07:39:44

Kafka分布式消息

2022-06-11 18:15:26

KubernetesDockerLinux

2022-02-28 11:10:42

ZGCG1收集器

2022-04-11 11:55:34

架構(gòu)技術(shù)調(diào)優(yōu)

2023-04-11 08:35:22

RocketMQ云原生

2022-06-13 11:05:35

RocketMQ消費(fèi)者線程

2021-04-25 10:45:59

Docker架構(gòu)Job

2022-07-11 11:06:11

RocketMQ函數(shù).消費(fèi)端

2021-05-18 06:55:07

Java AQS源碼

2022-07-04 11:06:02

RocketMQ事務(wù)消息實(shí)現(xiàn)

2022-06-27 11:04:24

RocketMQ順序消息

2019-07-24 08:49:36

Docker容器鏡像

2021-11-12 08:38:26

一致性哈希算法數(shù)據(jù)結(jié)構(gòu)

2022-05-09 11:15:05

RocketMQPULL 模式PUSH 模式

2021-12-06 07:15:47

Pulsar地域復(fù)制

2015-07-13 10:23:23

Java圖解

2023-09-28 21:37:41

HashMap多線程

2021-08-15 18:59:13

垃圾收集器JDK

2020-11-27 06:28:55

Spring循環(huán)依賴

2021-11-29 07:47:56

RocketMQ分布式消息
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日日夜夜91 | 欧美极品在线 | 国产成人亚洲精品 | 国产精品一区三区 | 成人在线观看网站 | 欧美色视频免费 | 艹逼网 | 久草免费视 | 成人在线观看网站 | 亚洲成人一区二区 | 91av视频在线观看 | 亚洲视频在线一区 | 91成人精品 | 国产中文| 国产高清免费视频 | 一区二区在线不卡 | 中文字幕一区二区三区四区五区 | 中文字幕一区二区三区在线观看 | 欧美日韩激情 | 亚洲成人第一页 | 国产二区精品视频 | 亚洲欧洲精品一区 | 在线观看久草 | 日韩一级欧美一级 | 亚洲精品66 | 伊人伊成久久人综合网站 | 一级女毛片| 五月天综合影院 | 精品一区二区三区中文字幕 | 午夜视频一区 | 成人免费在线小视频 | 亚洲淫视频 | 国产成人精品一区二 | 射欧美| 国产91精品久久久久久久网曝门 | 日韩一区二区免费视频 | 中文字幕在线视频网站 | 欧美精品在线一区 | 水蜜桃亚洲一二三四在线 | 久在线视频播放免费视频 | 最近日韩中文字幕 |