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

平安銀行一面:Kafka ISR的原理是什么?

開發
ISR機制是 Kafka實現高可靠性和高可用性的一個重要機制,它的出現大大提高了 Kafka的實用性,使其成為了大數據領域廣泛使用的消息隊列系統。

Kafka 的高可用性和高可靠性與它的 ISR機制密切相關。那么,什么是 ISR?它是如何工作的?這篇文章,我們來詳解 Kafka 的 ISR 機制。

什么是 ISR機制?

ISR 的全稱叫做In-Sync Replicas(同步副本集),ISR 動態維護了一個和 Leader 副本保持同步副本集合,ISR 中的副本全部都和 Leader 的數據保持同步。

ISR 機制通過副本冗余機制,提供了 kafka 消息的高可靠性,做到故障轉移,保障服務的可用性。ISR 平衡了主從架構下,復制方案的選擇(同步 / 異步 / 少數服從多數),讓使用者根據參數自行選擇。

ISR的作用

ISR的作用主要體現在以下幾個方面:

1.生產消息時的ACK確認機制

當我們生產消息的時候,到底要寫入多少副本才能算成功呢?通過 ISR 就可以知曉了哪些 follower 與 Leader 保持著同步,在寫入消息的時候,設置寫入處于 ISR 中所有的副本才算成功。Kafka提供了以下幾種ACK確認機制:

(1) acks=0

生產者不等待服務器的確認,消息發送后即認為成功,不管消息是否真正寫入 Kafka,這種方式效率最高,但可靠性最低,數據可能存在丟失。

(2) acks=1

生產者會等待來自 Leader分區的確認。Leader分區接收到消息并寫入本地日志后即返回確認。這種方式在 Leader分區可用時可靠,但如果 Leader分區發生故障,可能會丟失數據。從 Kafka 2.0 開始,默認值是 acks=1

(3) acks=all(或-1)

生產者等待所有 ISR(In-Sync Replica,同步副本)分區的確認。只有當消息被寫入所有同步副本后才返回確認,這種方式最可靠,但性能較低。

2.Leader選舉

當 Leader 掛了之后,我們應該選擇哪個 follower 來成為新的 Leader 呢?從 ISR 中選擇對應的 follower 成為新的 Leader。

3.最小 ISR副本數配置

Kafka提供了 min.insync.replicas 參數配置,這個參數可以配置最少 ISR 中需要多少個副本,才能繼續提供寫服務。如果設置為 2,一旦 ISR 中的個數小于 2,那么就不再提供寫服務,犧牲一定的可用性,來保障這種高可靠的場景需求。

ISR的原理

ISR機制的實現原理如下:

(1) Leader維護ISR

Leader負責維護ISR,當一個Follower趕上了Leader的進度,Leader會把它加入到ISR中;當一個Follower長時間未趕上Leader,或者主動退出同步,Leader會把它從ISR中移除,變成OSR(Out-of-Sync Replicas)。

(2) 生產者發送消息

生產者發送消息給Leader,Leader會把消息append到本地log,并且復制給ISR中的所有Follower。

(3) 消息提交

當ISR中的所有Follower都完成了復制,Leader會更新HW(High Watermark,最高提交偏移量),此時消息才算真正提交。

(4) 消費者消費消息

消費者只能消費提交的消息,即位于HW之前的消息。

(5) Follower同步數據

Follower定期主動從Leader拉取數據,保持與Leader的同步。當Follower死機或長時間未同步時,會被從ISR中移除。

(6) Leader選舉

當Leader所在的broker失效時,ISR中的其他Follower會選出一個新的Leader。選舉規則是:選擇ISR中最新的Follower。

實例分析

為了更好地理解 ISR機制,我們通過一個示例來講解。

假設一個 Kafka 集群中有一個 Topic test,該 Topic 有一個分區 partition-0,該分區有 3 個副本,分別在 Broker 1、Broker 2 和 Broker 3 上。

  • 在初始狀態時:Leader 副本:Broker 1 Follower 副本:Broker 2, Broker 3 所有的副本都工作良好,所以 ISR 集合為:[Broker 1, Broker 2, Broker 3]
  • 假如 Broker 2 失效:Broker 2 從 ISR 集合中移除,因此,ISR 集合變成了:[Broker 1, Broker 3]
  • 接著 Broker 1 也失效了:Broker 3 被選為新的 Leader,SR 集合變成了:[Broker 3]
  • 再然后,Broker 2 恢復:Broker 2 開始從 Broker 3 復制數據,Broker 2 追上 Broker 3 后,重新加入 ISR 集合,因此,ISR 集合變成了:[Broker 2, Broker 3]

ISR的優缺點

ISR機制的優點:

  • 提供了消息的高可靠性,即使部分副本失效,只要ISR中還有副本存活,消息就不會丟失。
  • 支持故障轉移,當 Leader失效時,ISR中的Follower可以順利接替成為新的 Leader,提高了系統的可用性。
  • 通過ACK機制,生產者可以根據自己的需求,在可靠性和吞吐量之間進行權衡。

ISR機制的缺點:

  • 同步復制會增加消息發送的延遲,因為生產者需要等待所有ISR中的副本完成復制。
  • ISR中的副本越多,消息發送的延遲就越高。
  • ISR中的副本數量受限于min.insync.replicas參數,如果副本數量低于該值,就無法提供寫服務,會降低系統的可用性。

總結

ISR機制是 Kafka實現高可靠性和高可用性的關鍵所在,它通過動態維護一個和Leader保持同步的副本集合,為消息的可靠性提供了保證。同時,ISR機制還支持故障轉移,當 Leader失效時,ISR中的 Follower可以順利接替成為新的 Leader。

不過,ISR機制也存在一些缺點,比如會增加消息發送的延遲,并且ISR中的副本數量受限于 min.insync.replicas參數。因此,在使用ISR機制時,需要根據實際的業務需求,在可靠性、可用性和吞吐量之間進行權衡。

總的來說,ISR機制是 Kafka實現高可靠性和高可用性的一個重要機制,它的出現大大提高了 Kafka的實用性,使其成為了大數據領域廣泛使用的消息隊列系統。


責任編輯:趙寧寧 來源: 猿java
相關推薦

2025-03-24 09:10:00

Spring注解代碼

2024-11-26 08:52:34

SQL優化Kafka

2024-10-22 15:25:20

2024-09-19 08:51:01

HTTP解密截取

2024-10-30 16:12:14

2024-10-15 10:59:18

Spring MVCJava開發

2022-05-11 22:15:51

云計算云平臺

2009-07-30 14:38:36

云計算

2020-09-19 17:46:20

React Hooks開發函數

2025-03-24 07:35:00

開發注解Spring

2011-12-22 20:53:40

Android

2011-12-23 09:43:15

開源開放

2025-03-19 08:00:00

@CacheableSpring注解

2024-05-15 16:41:57

進程IO文件

2022-12-13 18:09:25

連接狀態客戶端

2024-09-24 10:11:43

2012-12-19 09:04:29

2025-04-01 08:40:00

HTTPRPC開發

2024-11-11 16:40:04

2024-09-04 15:17:23

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区二区精品 | 中文字幕一级 | 欧美日韩亚洲一区 | 国产精品久久久久9999鸭 | 亚洲a在线观看 | 在线观看成年视频 | 亚洲欧美自拍偷拍视频 | 日韩视频在线免费观看 | 日韩欧美国产一区二区三区 | 麻豆一区二区三区精品视频 | 欧美成人一区二免费视频软件 | 欧洲成人| a在线观看 | 成人一区二区三区在线 | 国内av在线 | 午夜精品一区 | 国产精品不卡 | 日韩国产中文字幕 | 国产一区二区三区四区 | 国产精品久久久久久福利一牛影视 | 精品久久久久久久久久久久久久久久久 | 天天操一操 | 国产午夜精品一区二区三区四区 | 欧美日日 | 国产乱肥老妇国产一区二 | 久久久久国产精品 | 二区国产| 91精品综合久久久久久五月天 | 欧美一级小视频 | 亚洲成人黄色 | 中文字幕伊人 | 国产成人亚洲精品 | 成人网av | 羞羞视频在线观看网站 | 狠狠躁18三区二区一区 | 日韩视频中文字幕 | 91在线视频在线观看 | 欧美在线色视频 | 黄免费在线 | 一级黄色片网站 | 欧美一区免费 |