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

我們一起聊聊Kafka核心概念,你學會了嗎?

開發 前端
在某些情況下,生產者會把消息直接寫到指定的分區。這通常是通過消息鍵和分區器來實現 的,分區器為鍵生成一個散列值,并將其映射到指定的分區上。這樣可以保證包含同一個鍵的 消息會被寫到同一個分區上。

一、Producer

生產者創建消息。

該角色將消息發布到Kafka的topic中。broker接收到生產者發送的消息后,broker將該消息追加到 當前用于追加數據的 segment 文件中。

一般情況下,一個消息會被發布到一個特定的主題上。

1. 默認情況下通過輪詢把消息均衡地分布到主題的所有分區上。

2. 在某些情況下,生產者會把消息直接寫到指定的分區。這通常是通過消息鍵和分區器來實現 的,分區器為鍵生成一個散列值,并將其映射到指定的分區上。這樣可以保證包含同一個鍵的 消息會被寫到同一個分區上。

3. 生產者也可以使用自定義的分區器,根據不同的業務規則將消息映射到分區。

二、Consumer

消費者讀取消息。

1. 消費者訂閱一個或多個主題,并按照消息生成的順序讀取它們。

2. 消費者通過檢查消息的偏移量來區分已經讀取過的消息。偏移量是另一種元數據,它是一個不 斷遞增的整數值,在創建消息時,Kafka 會把它添加到消息里。在給定的分區里,每個消息的 偏移量都是唯一的。消費者把每個分區最后讀取的消息偏移量保存在Zookeeper 或Kafka 上,如果消費者關閉或重啟,它的讀取狀態不會丟失。

3. 消費者是消費組的一部分。群組保證每個分區只能被一個消費者使用。

4. 如果一個消費者失效,消費組里的其他消費者可以接管失效消費者的工作,再平衡,分區重新 分配。

三、Broker

一個獨立的Kafka 服務器被稱為broker。

broker 為消費者提供服務,對讀取分區的請求作出響應,返回已經提交到磁盤上的消息。

1. 如果某topic有N個partition,集群有N個broker,那么每個broker存儲該topic的一個 partition。

2. 如果某topic有N個partition,集群有(N+M)個broker,那么其中有N個broker存儲該topic的一 個partition,剩下的M個broker不存儲該topic的partition數據。

3. 如果某topic有N個partition,集群中broker數目少于N個,那么一個broker存儲該topic的一 個或多個partition。在實際生產環境中,盡量避免這種情況的發生,這種情況容易導致Kafka 集群數據不均衡。

broker 是集群的組成部分。每個集群都有一個broker 同時充當了集群控制器的角色(自動從集群 的活躍成員中選舉出來)。

控制器負責管理工作,包括將分區分配給broker 和監控broker。

在集群中,一個分區從屬于一個broker,該broker 被稱為分區的首領。

四、Topic

每條發布到Kafka集群的消息都有一個類別,這個類別被稱為Topic。 物理上不同Topic的消息分開存儲。 主題就好比數據庫的表,尤其是分庫分表之后的邏輯表。

五、Partition

1. 主題可以被分為若干個分區,一個分區就是一個提交日志。

2. 消息以追加的方式寫入分區,然后以先入先出的順序讀取。

3. 無法在整個主題范圍內保證消息的順序,但可以保證消息在單個分區內的順序。

4. Kafka 通過分區來實現數據冗余和伸縮性。

5. 在需要嚴格保證消息的消費順序的場景下,需要將partition數目設為1。

六、Replicas

Kafka 使用主題來組織數據,每個主題被分為若干個分區,每個分區有多個副本。那些副本被保存 在broker 上,每個broker 可以保存成百上千個屬于不同主題和分區的副本。 副本有以下兩種類型:

首領副本

每個分區都有一個首領副本。為了保證一致性,所有生產者請求和消費者請求都會經過這個副本。

跟隨者副本

首領以外的副本都是跟隨者副本。跟隨者副本不處理來自客戶端的請求,它們唯一的任務就是從首領那里復制消息,保持與首領一致的狀態。如果首領發生崩潰,其中的一個跟隨者會被提升為新首領。

七、Offset

生產者Offset

消息寫入的時候,每一個分區都有一個offset,這個offset就是生產者的offset,同時也是這個分區 的最新最大的offset。 有些時候沒有指定某一個分區的offset,這個工作kafka幫我們完成。

消費者Offset

這是某一個分區的offset情況,生產者寫入的offset是最新最大的值是12,而當Consumer A進行消 費時,從0開始消費,一直消費到了9,消費者的offset就記錄在9,Consumer B就紀錄在了11。等下一 次他們再來消費時,他們可以選擇接著上一次的位置消費,當然也可以選擇從頭消費,或者跳到最近的 記錄并從“現在”開始消費。

八、 副本

Kafka通過副本保證高可用。副本分為首領副本(Leader)和跟隨者副本(Follower)。 跟隨者副本包括同步副本和不同步副本,在發生首領副本切換的時候,只有同步副本可以切換為首 領副本。

AR

分區中的所有副本統稱為AR(Assigned Repllicas)。 AR=ISR+OSR

ISR

所有與leader副本保持一定程度同步的副本(包括Leader)組成ISR(In-Sync Replicas),ISR集合 是AR集合中的一個子集。消息會先發送到leader副本,然后follower副本才能從leader副本中拉取消息 進行同步,同步期間內follower副本相對于leader副本而言會有一定程度的滯后。前面所說的“一定程度” 是指可以忍受的滯后范圍,這個范圍可以通過參數進行配置。

OSR

與leader副本同步滯后過多的副本(不包括leader)副本,組成OSR(Out-Sync Relipcas)。在正常 情況下,所有的follower副本都應該與leader副本保持一定程度的同步,即AR=ISR,OSR集合為空。

HW

HW是High Watermak的縮寫, 俗稱高水位,它表示了一個特定消息的偏移量(offset),消費之 只能拉取到這個offset之前的消息。

LEO

LEO是Log End Offset的縮寫,它表示了當前日志文件中下一條待寫入消息的offset。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-11-13 18:36:04

知識抽取NER

2023-10-31 14:04:17

Rust類型編譯器

2023-04-13 08:40:12

MySQL服務器SELECT

2025-01-06 09:26:49

2023-01-03 08:13:26

GoModulesMaven

2022-06-15 08:00:50

磁盤RedisRocketMQ

2021-12-14 09:34:31

丑數順序指針

2021-05-31 09:23:04

管道模式責任鏈

2022-10-28 07:27:17

Netty異步Future

2024-09-13 09:05:31

架構思維程序

2024-10-17 10:00:59

2024-06-12 08:36:25

2024-03-05 10:09:16

restfulHTTPAPI

2022-12-26 07:48:04

敏捷項目

2024-09-11 08:02:27

k8sgitlab升級

2022-04-01 08:48:45

JavaPythonRuby

2024-08-19 10:24:14

2022-09-26 08:49:11

Java架構CPU

2022-04-13 09:01:45

SASSCSS處理器

2022-12-08 10:49:43

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色橹橹欧美在线观看视频高清 | 成人在线精品视频 | 色网站入口 | 视频一区二区三区中文字幕 | 亚洲a一区二区 | 亚洲国产一区二区三区 | www.亚洲 | 亚洲二区视频 | 少妇一区在线观看 | 美女三区 | av一二三区 | 91精品国产777在线观看 | 欧美在线视频一区二区 | 国产真实乱对白精彩久久小说 | 欧美中文字幕一区二区三区亚洲 | 影视先锋av资源噜噜 | 日韩精品一区二区三区中文在线 | 国产精品成人一区 | 欧美人妇做爰xxxⅹ性高电影 | 最新av在线播放 | 成年人黄色一级片 | 国产精品久久久久久久免费大片 | 黄色免费网站在线看 | 国产乱码久久久 | 国产美女视频黄a视频免费 国产精品福利视频 | 中文字幕一区二区三区日韩精品 | 亚洲国产一区视频 | 亚洲国产精品一区二区www | 在线观看成人av | 视频一区中文字幕 | 国产精品久久久久久一区二区三区 | 久久久影院 | 亚洲国产成人av好男人在线观看 | 久久久精品一区二区 | 久久国产精品精品 | 欧美综合一区二区 | 美日韩免费视频 | 日韩欧美精品一区 | 亚洲国产欧美在线 | 国产精品一区二区在线免费观看 | 久久在线 |