国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

圖解分布式一致性算法

開發 開發工具 前端 分布式 算法
今天的文章,咱們會通過圖的方式,來深入學習和理解分布式一致性的實現原理。

今天的文章,咱們會通過圖的方式,來深入學習和理解分布式一致性的實現原理。

開始的時候,咱們先來靈魂一問:什么是分布式一致性?

  • 你的應用是單節點嗎?
  • 你的系統用戶多嗎、支持擴容嗎?
  • 你的系統擴容后數據能保持一致嗎?
  • 你的系統是否使用Raft、Paxos?
  • ……

是否理解都沒關系,后面開始咱們的例子,通過圖的方式,來描述一致性的工作原理。

[[278855]]

一、前奏

假設咱們有個系統。是個單節點的系統,只部署在一個實例上。可以把它理解成一個數據庫服務(Database Server),實例上只有一個數據X,咱們后續的故事都是要圍繞操作變更X的值開展的。

[[278856]]

咱們還有個客戶端(Client),它要向節點 (Server) 寫數據,這個時候應用代碼寫起來也簡單,這個數據的一致性很容易保證。

寫請求執行后,客戶端和服務端的X數據都變成了8。

在用戶量少的時候,還天天操心啥時候來個百萬千萬用戶,等用戶稍微一多起來才發現,原來的一個實例扛不住了。這個時候為了支持更多用戶訪問,又擴容出來了更多的實例。

那么這下問題來了,當我們有多個實例節點間的時候,客戶端向其中一個節點寫了數據,如何再同步給其他節點呢?怎樣保證節點間數據的一致性呢?這就是分布式一致性問題。

二、 Raft 協議概覽

Raft 就是一個解決上述分布式一致性問題的協議。類似的協議還有Paxos、Zab等等。相比 Paxos,Raft 更易理解和實現。

咱們本次會俯瞰 Raft , 來了解其工作原理。

在 Raft 里, 節點可能存在三種狀態:

  • Follower
  • Candidate
  • Leader

在后面的圖里內容中,上述三種狀態分別和下面三個圖一一對應。

任何時候,都只會處于上述三種狀態中的一種。初始時候,所以節點都處于 Follower狀態。

如果follower 節點不再能接收到 leader 節點的消息, 他們的狀態就會變成 Candidate。

分布式一致性算法

Candidate 節點會向其他節點發起投票請求,

分布式一致性算法

其他節點也會投票進行響應。

分布式一致性算法

如果獲得了多數節點的投票,那 Candidate節點會成為Leader。

分布式一致性算法

上面的這個過程就是分布式一致性協議中的「選舉」(Leader Election)。

后續所有對于系統的變更,都是通過Leader進行的。經由 Leader 再到達其他節點。

每次 Client 的變更請求到達 leader 時,都會視為一個 Entry ,先添加到節點的日志 (Log)里。這個新增的 log entry,目前還并沒有提交,所以不會真的更新節點里 X 的值。

分布式一致性算法

leader 首先會復制 log entry 給所有 follower節點。

分布式一致性算法

然后, leader 會等待,直到多數節點都寫入了entry。

分布式一致性算法

在收到多數節點的寫入響應之后, leader 節點會將 entry 提交,此時 leader節點的值變成了 5.

然后 leader 會通知 follower 節點 自己的 entry 已經提交了。

分布式一致性算法

此時各個 follower 節點也會將之前收到的entry 進行提交。

分布式一致性算法

整個系統目前所有的集群節點都達到了一致的狀態。這個過程一般稱為日志復制(Log Replication)。

三、 Leader Election

Raft 里有項控制選舉的超時時間設置。選舉超時時間是一個follower變成 candidate 的等待時間。值是150ms到300ms間的一個隨機值.

分布式一致性算法

在選舉超時后, follower 會變成 candidate 開始一個新的選舉周期(term),同時會給自己投一票。

分布式一致性算法

并且給其他節點發送請求投票的消息。

分布式一致性算法

如果收到消息的節點在這一個周期還沒有投過票,那他需要給 candidate 投一票,并且該節點重置他的選舉超時時間。

分布式一致性算法

如果 candidate 收到大多數節點的投票,就會成為leader。

分布式一致性算法

leader 此時會在心跳檢測的周期內,給給所有的follower發送Append Entries messages 。檢測的頻率是通過心跳超時時間設置的。

分布式一致性算法

然后 每個 follower 也會給 Append Entries message 發送響應。

這個選舉周期會一直持續直到某個 follower 停止心跳消息接收變成 candidate。

分布式一致性算法

我們停掉 leader 再來看一下重新選舉的情況。

此時 節點 B 已經停止,所以 節點A 和節點C 都收不到心跳消息。咱們前面說收不到心跳消息的話,節點的狀態會從 Follower 變成 Candidate,所以A 和C 在各自的選舉超時時間設置內會改變狀態,

此時,節點 A 和 節點 C 都在等待,由于節點C先超時,所以會先開始一輪選舉。和上面的選舉過程一樣,會先新增Term,給自己投一票,并發送投票請求給其他節點。

在收到節點A的投票后,節點C現在升級為 term 2的 leader。

分布式一致性算法

咱們前面總在說的「大多數節點投票」(a majority of votes)。這個能保證能在一個投票周期內,只會產生一個 leader。

假設兩個節點同時從 Follower 狀態變成了 Candidate,這個時候兩者都會升級 Term,并請求其他節點不給自己投票。

分布式一致性算法

分布式一致性算法

這個時候兩者的 Term 其實是相同的,在同一個 Term 內 其他節點只會投出一票,所以每個 Candidate 都只會收到一個節點的投票。

分布式一致性算法

分布式一致性算法

因為沒有超過「大多數」,所以都會不能成為 leader。這些節點就會等待新一輪的選舉,此時節點D先開始發起投票,并收到了大多數的投票,所以在Term 5 最終成為 leader。

分布式一致性算法

四、 Log Replication

在選舉出一個leader之后,就需要復制所有的變更信息到系統里的所有節點。這些是通過和心跳檢測相同的的Append Entries message 來完成的。

分布式一致性算法

我們來看下這個過程。一開始, client會向leader發送一個變更。

分布式一致性算法

這個變更會加到 leader的log中,并會在下一次心跳檢測的時候發給 follower。

分布式一致性算法

follower在收到消息之會,都會給 leader 發送響應的 ack消息。

分布式一致性算法

收到大多數的 follower 響應之后, leader 會提交這個entry,并且發送響應給 client。

分布式一致性算法

分布式一致性算法

并在下次心跳的時候,通知 follower 們執行提交操作。

follower 在寫入完成后再給 leader 發送響應。

此時 Client 又給給 leader 發送消息,要給X 來執行個 加2 的操作。leader 將消息添加到 log 之后,給各個follower 發送心跳。

follower 們收到之后繼續返回響應。

leader 收到 ack 之后,確認本次執行進行 commit ,然后給 client 發回響應。并在下次心跳的時候,把寫入發給各個 follower。

此時,咱們的系統里 X變成了7,各個節點的數據保持一致。

五、「大多數」是多少?

前面許多場景咱們都提到「大多數」。那大多數到底是多少呢?

比如我們在選舉的時候,在日志復制的時候,都需要大多數 follower 發送回響應消息。

這里的大多數和咱們日常生活里的基本一致,即超過半數。比如一共有5個節點,此時有一個 candidate 起成為 leader,在投票過程中,至少要收到3個投票才行。

官網有個可以自定義時間進行交互的動圖,感興趣的朋友可以自行查看。

【本文為51CTO專欄作者“侯樹成”的原創稿件,轉載請通過作者微信公眾號『Tomcat那些事兒』獲取授權】

戳這里,看該作者更多好文

 

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2024-11-28 10:56:55

2022-06-07 12:08:10

Paxos算法

2021-02-05 08:00:48

哈希算法?機器

2020-10-28 11:15:24

EPaxos分布式性算法

2019-09-05 08:43:34

微服務分布式一致性數據共享

2021-11-22 16:30:30

分布式一致性分布式系統

2024-05-27 10:42:55

2017-09-21 10:59:36

分布式系統線性一致性測試

2021-07-28 08:39:25

分布式架構系統

2021-06-03 15:27:31

RaftSOFAJRaft

2020-07-20 08:30:37

算法哈希分布式系統

2021-06-06 12:45:41

分布式CAPBASE

2017-09-22 12:08:01

數據庫分布式系統互聯網

2023-11-06 09:06:54

分布式一致性數據

2018-04-10 16:24:03

算法分布式一致性

2018-03-13 08:20:48

區塊鏈數據安全

2020-05-11 10:30:57

2PC分布式協議

2021-06-16 08:33:02

分布式事務ACID

2018-03-19 09:50:50

分布式存儲系統

2025-03-14 08:00:00

分布式系統服務器一致性
點贊
收藏

51CTO技術棧公眾號

欧美日韩综合一区| 久久久亚洲福利精品午夜| 清纯唯美日韩| 欧美日韩高清一区| 大香一本蕉伊线亚洲网| 影音先锋日韩资源| 欧美性资源免费| 波多野结衣视频一区二区| 亚洲久本草在线中文字幕| 久久久成人精品一区二区三区 | 成人福利视频网站| 91精品国产自产在线老师啪| 亚洲精品无播放器在线播放| 日韩一区二区在线看片| 中文字幕国产在线| 欧美极品aⅴ影院| 国产96在线 | 亚洲| 美女脱光内衣内裤视频久久网站| 国产精品视频内| 99re6热只有精品免费观看| 亚洲精品中文字幕有码专区| 在线激情网站| 三上悠亚在线免费观看| 欧美成人合集magnet| 免费福利在线视频| 国产精品无码永久免费888| 日韩欧美一区二区视频在线播放| 国产玉足脚交久久欧美| 中国字幕a在线看韩国电影| 午夜国产精品一区| 99热在线免费播放| av午夜一区麻豆| 热这里只有精品| 天堂精品中文字幕在线| 国产精品成人观看视频免费| 色喇叭免费久久综合| 啪一啪鲁一鲁2019在线视频| 黑料吃瓜在线观看| 国产精品乱码一区二三区小蝌蚪| www.av片| 不卡区在线中文字幕| 一级特黄录像免费播放全99| 亚洲欧美视频| 久久这里精品国产99丫e6| 亚洲福利国产| 国产美女99p| 精品众筹模特私拍视频| 欧美一级黄色片| 爆操欧美美女| 4438x亚洲最大成人网| 日本福利专区在线观看| 欧美日韩免费观看一区二区三区 | 自拍视频在线网| 欧美午夜美女看片| 天海翼一区二区三区四区在线观看| 亚洲欧美日韩综合aⅴ视频| 国精产品999国精产品官网| 一级精品视频在线观看宜春院| 免费xxxxx网站中文字幕| 亚洲曰韩产成在线| 免费黄色片在线观看| 欧美精品成人一区二区三区四区| v天堂福利视频在线观看| 精品国产污网站| 日本欧美韩国| 午夜精品理论片| 欧美一区二区三区视频在线| 东凛在线观看| 日韩免费观看高清完整版在线观看| 久久香蕉一区| 99re热视频精品| 一区二区三区国产免费| 亚洲成人综合在线| 中文国产字幕在线观看| 国产午夜精品视频| 蜜臀91精品国产高清在线观看| 国产精品综合久久久久久| 国产乱码精品一区二区三| 成人在色线视频在线观看免费大全| 日韩欧美福利视频| 一本一道久久a久久精品逆3p| 制服丝袜在线播放| 精品丝袜在线| 性欧美18一19内谢| 亚洲国产网站| 91九色国产ts另类人妖| 91伊人久久大香线蕉| 99免费看香蕉视频| 欧美优质美女网站| 春暖花开亚洲一区二区三区| 欧美孕妇性xx| 日韩制服丝袜先锋影音| 中文字幕在线观看第三页| 在线视频中文字幕一区二区| 日韩网站中文字幕| 亚洲自拍欧美色图| 成人免费视频视频| 涩爱av在线播放一区二区| 亚洲人成电影在线播放| 日韩电影免费网站| 日韩黄色片在线| 精品久久久香蕉免费精品视频| 金瓶狂野欧美性猛交xxxx| 午夜精品一区二区三区av| 日韩影院精彩在线| 69av二区| 亚洲少妇中文在线| 亚洲美女视频| 欧美激情视频一区| 午夜国产精品视频免费体验区| 大陆极品少妇内射aaaaaa| 激情懂色av一区av二区av| 欧美日韩在线精品一区二区三区激情综合| 国产成人av在线播放| 国产一区二区0| 国产在线一二| 亚洲国产aⅴ成人精品无吗| av男人的天堂在线观看| 国产精品日韩欧美综合| 国产精品白丝jk黑袜喷水| 看电影就来5566av视频在线播放| 久久影视电视剧免费网站| 日韩精品一级二级| 青青草免费在线视频| 久久久久久久久久久免费| 久久99国产精品久久99果冻传媒| 日韩电影免费| 日本精品久久久久影院| 成人性生交大合| 国产蜜臀av在线播放| 99一区二区| 亚洲国产精品视频| 国产精品久av福利在线观看| 极品粉嫩国产18尤物| 亚洲精品一区二区三区四区高清| 亚洲乱码精品| 少妇高潮露脸国语对白| 欧美日韩成人在线观看| 国产美女久久久久| 大桥未久在线播放| 久久青青草原| 欧美日韩一区中文字幕| 天天综合久久| 最近2018中文字幕免费在线视频| 91禁外国网站| 中文字幕免费在线观看视频一区| 欧美性生活一级| 国语自产精品视频在线看| 国产米奇在线777精品观看| 天堂av在线电影| 久久一区免费| 欧美日本在线播放| 亚洲经典在线| 麻豆av在线导航| 国产免费一区二区三区| 欧美网站一区二区| 亚洲欧洲另类| jizzjizz亚洲| 日本午夜精品一区二区| 日韩一区二区电影在线| 先锋影音久久久| 日本动漫理论片在线观看网站| 蜜桃传媒视频麻豆一区| 日韩欧美国产三级| 全国精品久久少妇| 在线看片福利| 久久久久久久久久久综合| 中文字幕日韩欧美| 久久久久久一级片| 久久夜色电影| 免费成年网站| 91中文在线观看| 欧美日韩国产综合视频在线观看| aⅴ色国产欧美| 欧亚在线中文字幕免费| 国产精品专区在线| 亚洲一区二区视频在线观看| 精品国产一区二区三区四区 | 日本天堂免费a| 国产亚洲精品成人av久久ww| 久久无码av三级| 国产精品男女| 91网在线观看| 国产日韩精品推荐| 日韩大陆欧美高清视频区| 丁香婷婷综合网| 九九在线高清精品视频| 国产黄在线播放| 国产精品h视频| 久久理论片午夜琪琪电影网| 欧美午夜精品在线| 国产自产高清不卡| 人体久久天天| 丝袜美腿美女被狂躁在线观看| 蜜臀在线免费观看| 欧美中文字幕在线播放| 91精品国产综合久久福利| 91麻豆国产自产在线观看| 99久久这里只有精品| 伊人222成人综合网|