国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微服務實戰(zhàn)系列之ZooKeeper(中)

這篇具有很好參考價值的文章主要介紹了微服務實戰(zhàn)系列之ZooKeeper(中)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

昨日博主的第一篇ZooKeeper,對它自身具備的能力做了初步介紹。書接上文,馬不停蹄,我們繼續(xù)挖掘它內在的美,充分把握它的核心與脈絡。

微服務實戰(zhàn)系列之ZooKeeper(中),架構設計,微服務,zookeeper,架構,分布式,ZAB

揭秘ZooKeeper

Q:集群一致性協(xié)同是如何進行的

我們講到分布式,一般是在集群環(huán)境下實現(xiàn)的。以ZooKeeper為例,它是如何保障集群環(huán)境下的成功運轉呢?

微服務實戰(zhàn)系列之ZooKeeper(中),架構設計,微服務,zookeeper,架構,分布式,ZAB

1. 節(jié)點角色

通過上圖,我們認識一下ZooKeeper的3類節(jié)點:

  • Leader節(jié)點
    Leader作為ZooKeeper的領袖,有著舉足輕重的作用。它是ZooKeeper集群環(huán)境如何穩(wěn)定運行的關鍵,主要負責讀寫和調度等核心工作。如果它宕機了,一致性調度從此冷卻,整個集群將面臨群龍無首的局面,直至系統(tǒng)癱瘓。
  • Follower節(jié)點
    作為隨從節(jié)點,主要負責客戶端的讀操作,如果遇到寫申請, 需要轉發(fā)Leader節(jié)點完成,自身不做任何處理。如Leader宕機,會立即參與Leader的選舉,具有投票權。
  • Observer節(jié)點
    作為候選角色,Observer為提升整個集群的執(zhí)行效率提供一定幫助,但僅限于讀操作。不參與寫,不參與Leader的選舉。

了解3類節(jié)點后,我們大概知道每個Server(Node)是如何執(zhí)行客戶端申請以及Server集群內部是如何完成最終一致性協(xié)同的過程。

比如Client對任一類節(jié)點發(fā)起讀操作,則每個節(jié)點均可立即返回本地數(shù)據(jù),如此便提高了響應性能;
比如Client對Follower節(jié)點發(fā)起寫操作,則它會寫命令轉交Leader完成,最后由Leader完成寫操作和數(shù)據(jù)同步;
比如Leader發(fā)生宕機,則Follower們立即啟動選舉,任命新的Leader。而Observer完全可以“袖手旁觀,置之不理”,此刻真是“開心開心極了...”
微服務實戰(zhàn)系列之ZooKeeper(中),架構設計,微服務,zookeeper,架構,分布式,ZAB

2. 基礎協(xié)議

為了實現(xiàn)上述一致性數(shù)據(jù)同步,ZooKeeper基于ZAB(Zookeeper Atomic Broadcast 原子廣播協(xié)議)完成的。

ZAB準確來講提供了一套完整的數(shù)據(jù)同步消息機制。(無論哪類節(jié)點)從接收客戶端請求到客戶端收到實時數(shù)據(jù),并實現(xiàn)集群內部數(shù)據(jù)寫操作的一致性,均是通過ZAB機制完成的。

微服務實戰(zhàn)系列之ZooKeeper(中),架構設計,微服務,zookeeper,架構,分布式,ZAB

通過上圖,我們了解到,Leader負責處理寫請求,如其他節(jié)點接收到寫請求,需轉發(fā)Leader完成。那么Leader收到請求后,如何繼續(xù)工作呢?

  1. 發(fā)布全局唯一事務申請zxid(zxid是64位的Long類型);
  2. 所有的Follower均對此申請進行反饋;
  3. Leader如收到反饋過半,則執(zhí)行寫提交,最后完成集群同步;
Q:集群選舉如何進行的

我們都知道Leader至關重要,是維持ZooKeeper的集群健康運轉的大腦。但天有不測風云,即使7*24高可用高可靠,也難免百密一疏。如果Leader真的宕機了? 如何維持集群秩序呢?

接下來,博主帶著各位盆友,繼續(xù)揭秘ZooKeeper中 Leader的選舉過程。

既然有選舉,就有投票,有投票,就有候選人,有投票人。那么候選人和投票人是怎么產生的,最終誰才能勝任?
微服務實戰(zhàn)系列之ZooKeeper(中),架構設計,微服務,zookeeper,架構,分布式,ZAB
在正式講解選項過程前,我們先了解一些基礎知識。

1. 節(jié)點狀態(tài)

在ZooKeeper集群中,涉及4中狀態(tài):

節(jié)點狀態(tài) 簡介
LOOKING 尋 找 Leader 狀態(tài),即開始選舉的初始狀態(tài)
FOLLOWING 跟隨者狀態(tài),表明當前節(jié)點為Follower
LEADING 領袖狀態(tài),表明當前節(jié)點為Leader
OBSERVING 觀察者狀態(tài),表明當前節(jié)點為Observer
2. 節(jié)點ID

我們在搭建ZooKeeper集群時,一般需要為每個Server(Node)標識一個唯一的編號(從小到大,比如1.2.3,以此類推)。

這個ID一般記錄在每個ZooKeeper Server中的數(shù)據(jù)文件中,安裝時指定。

3. 奇數(shù)

ZooKeeper集群信仰奇數(shù),為什么? 因為有“過半才OK”的理念。
所以我們在搭建集群時,務必按要求配置,否則ZooKeeper可能無法正常工作哦。

4. 投票選舉Leader
選舉場景 簡介
啟動時 選擇此刻集群中的節(jié)點ID最大者投票。當然開始時,均可為自己投票,實時更新狀態(tài)
故障恢復時 根據(jù)ZXID順序,優(yōu)先執(zhí)行,并選擇此刻集群中的節(jié)點ID最大者投票

投票結束后,收到票數(shù)過半者則當選新一任Leader,其他節(jié)點自動更新為Follower,而Observer自必不說,全程不參與。

到此為止,我們具備了以上基礎知識后,繼續(xù)回看上圖,是不是可以理解了?


結語

博主通過揭秘ZooKeeper內在的核心邏輯,剖析它是如何完成我們想象中的職責和工作的。通過以上內容,我們可以發(fā)現(xiàn),無論是什么協(xié)議或算法,均服務于某個業(yè)務和技術場景。所以感謝前輩們的辛勤耕耘,才有ZooKeeper的用武之地。


歷史回顧

  • 微服務實戰(zhàn)系列之ZooKeeper(上)
  • 微服務實戰(zhàn)系列之MQ
  • 微服務實戰(zhàn)系列之通信
  • 微服務實戰(zhàn)系列之J2Cache
  • 微服務實戰(zhàn)系列之Cache(技巧篇)
  • 微服務實戰(zhàn)系列之MemCache
  • 微服務實戰(zhàn)系列之EhCache
  • 微服務實戰(zhàn)系列之Redis
  • 微服務實戰(zhàn)系列之Cache
  • 微服務實戰(zhàn)系列之Nginx(技巧篇)
  • 微服務實戰(zhàn)系列之Nginx
  • 微服務實戰(zhàn)系列之Feign
  • 微服務實戰(zhàn)系列之Sentinel
  • 微服務實戰(zhàn)系列之Token
  • 微服務實戰(zhàn)系列之Nacos
  • 微服務實戰(zhàn)系列之Gateway
  • 微服務實戰(zhàn)系列之加密RSA
  • 微服務實戰(zhàn)系列之簽名Sign

微服務實戰(zhàn)系列之ZooKeeper(中),架構設計,微服務,zookeeper,架構,分布式,ZAB文章來源地址http://www.zghlxwxcb.cn/news/detail-763234.html

到了這里,關于微服務實戰(zhàn)系列之ZooKeeper(中)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 微服務實戰(zhàn)系列之Cache(技巧篇)

    微服務實戰(zhàn)系列之Cache(技巧篇)

    凡工具必帶使用說明書,如不合理的使用,可能得到 “意外收獲” 。這就好比每個人擅長的領域有所差異,如果放錯了位置或用錯了人,也一定會讓 Leader 們陷入兩難之地: “上無法肩負領導之重托,下難免失去伙伴之信任” ,最終的結局大致是 不歡而散 。 通過前序系列

    2024年02月03日
    瀏覽(24)
  • SpringCloudAlibaba微服務實戰(zhàn)系列(二)Nacos配置中心

    SpringCloudAlibaba微服務實戰(zhàn)系列(二)Nacos配置中心

    在java代碼中或者在配置文件中寫配置,是最不雅的,意味著每次修改配置都需要重新打包或者替換class文件。若放在遠程的配置文件中,每次修改了配置后只需要重啟一次服務即可。話不多說,直接干貨拉滿。 首先引入配置相關的依賴 其次保證項目啟動時,配置先從nacos配置

    2024年02月16日
    瀏覽(18)
  • 微服務實戰(zhàn)系列之J2Cache

    微服務實戰(zhàn)系列之J2Cache

    經(jīng)過近幾天陸續(xù)發(fā)布 Cache 系列博文,博主已對業(yè)界主流的緩存工具進行了基本介紹,當然也提到了一些基本技巧。相信各位盆友看見這么多 Cache 工具后,在選型上一定存在某些偏愛: A同學說:不管業(yè)務千變萬化,我對Redis的愛永不變。 B同學說:不管集中式還是分布式,單

    2024年02月04日
    瀏覽(22)
  • SpringCloudAlibaba微服務實戰(zhàn)系列(三)Sentinel1.8.0+流控

    SpringCloudAlibaba微服務實戰(zhàn)系列(三)Sentinel1.8.0+流控

    Sentinel被稱為分布式系統(tǒng)的流量防衛(wèi)兵,是阿里開源流量框架,從 服務限流、降級、熔斷等 多個緯度保護服務。Sentinel同時提供了簡潔易用的控制臺,可以看到接入應用的秒級數(shù)據(jù),并可以在控制臺設置一些規(guī)則保護應用。它比Hystrix支持的范圍廣泛,如Spring Cloud、Dubbo、gRP

    2024年02月16日
    瀏覽(19)
  • Nestjs 微服務實戰(zhàn) - 動態(tài)微服務創(chuàng)建鏈接

    所有的微服務都需要做服務治理 服務治理包括(配置中心、服務發(fā)現(xiàn)、注冊服務等等),常見的包括 Java 的 Nacos,這里不關注與服務治理,只說明,如何用 nest 網(wǎng)關,并且在網(wǎng)關層動態(tài)實現(xiàn)微服務注入 nestjs 官網(wǎng)的案例明顯是偏向于手動注冊微服務的,例如: 以上屬于官網(wǎng)列

    2024年01月24日
    瀏覽(18)
  • go-zero微服務實戰(zhàn)——服務構建

    go-zero微服務實戰(zhàn)——服務構建

    接上一節(jié)go-zero微服務實戰(zhàn)——基本環(huán)境搭建。搭建好了微服務的基本環(huán)境,開始構建整個微服務體系了,將其他服務也搭建起來。 order的目錄結構,如下 根目錄 api服務 rpc服務 自定義邏輯層logic 自定義參數(shù)層models 自定義工具層util api服務和rpc服務都是基于goctl一鍵生成的,當

    2024年02月14日
    瀏覽(24)
  • zookeeper分布式協(xié)調系統(tǒng)的架構設計與源碼剖析

    zookeeper分布式協(xié)調系統(tǒng)的架構設計與源碼剖析

    目錄 001_我們一般到底用ZooKeeper來干什么事兒? 002_有哪些開源的分布式系統(tǒng)中使用了ZooKeeper? 003_為什么我們在分布式系統(tǒng)架構中需要使用ZooKeeper集群? 004_ZooKeeper為了滿足分布式系統(tǒng)的需求要有哪些特點 005_為了滿足分布式系統(tǒng)的需求,ZooKeeper的架構設計有哪些特點? 006_

    2024年02月03日
    瀏覽(124)
  • 《學成在線》微服務實戰(zhàn)項目實操筆記系列(P92~P120)【下】

    《學成在線》微服務實戰(zhàn)項目實操筆記系列(P92~P120)【下】

    史上最詳細《學成在線》項目實操筆記系列【下】,跟視頻的每一P對應,全系列18萬字,涵蓋詳細步驟與問題的解決方案。如果你操作到某一步卡殼,參考這篇,相信會帶給你極大啟發(fā)。 4.1 (課程發(fā)布)模塊需求 P92 課程預覽:在發(fā)布課程之前需要預覽一下,看最終的效果有沒

    2024年02月19日
    瀏覽(24)
  • SpringCloudAlibaba微服務實戰(zhàn)系列(四)Sentinel熔斷降級、異常fallback、block細致處理

    SpringCloudAlibaba微服務實戰(zhàn)系列(四)Sentinel熔斷降級、異常fallback、block細致處理

    接著上篇文章的內容,在Sentinel中如何進行降級和熔斷呢? 降級規(guī)則 在Sentinel中降級主要有三個策略:RT、異常比例、異常數(shù),也是針對某個資源的設置。而在 1.8.0+ 版本后RT改為了 慢調用比例 需要設置允許的慢調用 RT(即最大的響應時間),請求的響應時間大于該值則統(tǒng)計

    2024年02月16日
    瀏覽(34)
  • SpringCloudAlibaba微服務實戰(zhàn)系列(五)Sentinel1.8.5+Nacos持久化

    SpringCloudAlibaba微服務實戰(zhàn)系列(五)Sentinel1.8.5+Nacos持久化

    前面介紹Sentinel的流控、熔斷降級等功能,同時Sentinel應用也在面臨著一個問題:我們在Sentinel后臺管理界面中配置了一堆流控、降級規(guī)則,但是Sentinel一重啟,這些規(guī)則全部消失了。那么我們就要考慮Sentinel的持久化問題。 Sentinel為我們提供了幾種持久化的解決方案: 存儲到

    2024年02月10日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包