日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、zk是什么:

1、個人理解zk=文件系統+通知機制。

2、zk是一個分布式的應用程序協調服務,我理解的就是有兩臺集器A、B,A對一個數據進行了操作,B是如何知道的,這個就需要zk的支持。

3、 分布式應用程序可以基于 ZooKeeper 實現諸如數據發布/訂閱、負載均衡、命名服務、分布式協 調/通知、集群管理、Master 選舉、配置維護,名字服務、分布式同步、分布式鎖和分布式隊列 等功能。

二、zk的初始化選舉機制:

1、首先一般選舉里面都有2N+1臺集器,如果是三臺機器的A、B、C,A和B都會選舉自己,每次投票會包括推舉的服務器的myid和zxid,使用(myid,zxid)來表示。

2、集群中的服務器都接受到投票時,首先判斷投票的有效性,如檢查是不是本輪的投票,是否是looking狀態的機器。

3、處理投票,比較zxid大小,越大權重越大,如果相同再比較myid。

4、統計投票。

5、改變服務器的狀態。

ps:注意:在這個過程中,有個重要的數據結構,electionEpoch即邏輯時鐘,用來判斷是否在同一輪選舉周期中,每次進入新的一輪投票都會自增,還有一個state,表示當前服務器的狀態。

三、zk的運行過程中leader崩潰選舉機制:

1、狀態變更,余下所有的observing服務器都會將自己的服務器狀態變成looking狀態。

2、每個server會發起投票。

3、接受各個服務器的投票。

4、處理投票。

5、統計投票。

6、改變服務器的狀態。

注意:其實崩潰選舉機制和初始化差不多,但是值得注意一點是每個機器中的electionEpoch,也就是邏輯時鐘,如果有機器宕機的話,這個數值是和正常的機器不一樣的,所以需要判斷這個值不是正常值的機器投票數據是否是正常的。

四、zk中的znode節點:

1、四種類型:(1)、持久化目錄節點。(2)、持久化順序編號目錄節點。(3)、臨時目錄節點。(4)、臨時順序編號目錄節點。

五、zk中的監控原理:

1、zk類似于linux中的目錄節點樹方式的數據存儲,即分層命名空間,zk并不是專門存儲數據的,它的作用是主要是維護和監控存儲數據的狀態變化,通過監控這些數據狀態的變化,從而可以達到基于數據的集群管理,zk中的杰點的數據上限時1M。

2、zk中的wathc機制:client端會對某個znode建立一個watcher事件,當該znode發生變化時,這些client會收到zk的通知,然后client可以根據znode變化來做出業務上的改變等。

3、圖說明:

Zookeeper 面試總結

4、main方法會創建zkClient,在創建zkClient的時候,會創建出listener進程和connect進程。一個是監控進程一個是網絡連接進程。當zkClient調用getChildren等方法注冊監聽器的時候,connect進程向zk注冊監聽器,注冊后的緝監聽器位于zk的監聽器列表中,監聽器列表中記錄了zkClient的ip地址,端口號,要監控的目錄,一旦目標文件發生了改變,zk就會把這條消息發送給對應的zkClient的listener進程,listener進程接受到后,就會執行process方法。在process方法中針對發生的事件進行處理。

Zookeeper 面試總結

六、zk的職者:

1、命名服務:命名服務是指通過指定的名字來獲取資源或者服務的地址,利用zk創建一個全局的路徑,即是唯一的路徑,這個路徑就可以作為一個名字,指向集群中的集群,提供的服務的地址,或者一個遠程的對象等等。

2、配置管理(文件系統、通知機制):程序分布式的部署在不同的機器上,將程序的配置信息放在zk的znode下,當有配置發生改變時,也就是znode發生變化時,可以通過改變zk中某個目錄節點的內容,利用watcher通知給各個客戶端,從而更改配置。

3、集群管理:是否有機器退出和加入、選舉master。對于機器的退出,所有機器約定在父目錄下創建臨時目錄,對于新機器的加入,所有機器創建臨時順序編號目錄節點。

4、分布式鎖:分為兩類,一個是保持獨占:客戶端需要的時候,就去通過createznode的方式實現,所有客戶端都去創建/distribute_lock節點,用完就刪除節點就行了。一個是控制時序,/distribute_lock已經預先存在,所有客戶端在它下面創建臨時順序編號目錄節點。主要流程是:客戶端在獲取分布式鎖的時候在locker節點下創建臨時順序節點,釋放鎖的時候就刪除,客戶端首先調用createZnode放在在locker創建臨時順序節點,然后調用getChildren來獲取locker下面的所有子節點,此時不用設置watch,客戶端獲取了所有子節點的path之后,反正最后要找到最小序號的那個節點,調用exist方法,同時對其注冊事件監聽器

5、隊列管理:兩種類型的隊列,一種是同步隊列,一個是按照FIFO方式進行入隊和出隊,第二種保證了隊列消息的不會丟失,因為會在特定的目錄下創建一個persistent_sequential節點,創建成功時watcher通知等待的隊列,隊列刪除序列號最小的節點,此場景下,zk中的znode用于消息存儲,znode存儲的數據就是消息隊列中的消息內容,sequential序列號就是消息的編號,按序列取出即可。

七、zk中的數據復制:

1、作用:(1)容錯。(2)提高系統的擴展功能。(3)提高性能。

2、數據復制分為兩種:

(1)、寫主,對數據的修改提交給指定節點,讀沒有限制,可以在任意的節點讀取數據。

(2)、寫任意:對數據的修改提交給任意的節點,讀也是任意節點。

八、zk的工作原理:

1、核心就是原子廣播。在ZooKeeper中所有的事務請求都由一個主服務器也就是Leader來處理,其他服務器為Follower,Leader將客戶端的事務請求轉換為事務Proposal,并且將Proposal分發給集群中其他所有的Follower,然后Leader等待Follwer反饋,當有 過半數(>=N/2+1) 的Follower反饋信息后,Leader將再次向集群內Follower廣播Commit信息,Commit為將之前的Proposal提交。

2、保證數據的一致性:

(1)、順序的一致性。

(2)、原子性。

(3)、單一的系統映像。

(4)、持久性。

3、ZAB協議的兩種實現方式:

(1)、恢復模式:當服務啟動或在leader崩潰后,ZAB就進入了恢復模式,在leader選舉出來之前,且大多數server完成和leader的狀態同步以后,恢復模式就結束了。在這個過程中,要保證被leader提交的proposal最終被所有的follower執行,確保那些只在leader提出的proposal被丟棄。

(2)、廣播模式:即leader提出一個決議,由follower進行投票,leader對投票結果進行計算決定是否通過決議,如果通過執行該決議,否則什么都不做。

九、zk的watch機制:

1、一次性觸發數據改變時,一個watch event會被發送到client,但是client只會接收到一次這樣的消息。

2、watch event異步發送到watcher的通知事件從server發送到client是異步的,但是可能由于網絡延遲原因,所有導致客戶端在不同時刻監聽到事件,zk只保證最終的一致性,而無法保證強一致性。

3、數據監視由getData和exists方法,getchildren設置了子節點監視。

4、注冊watcher:getData、exists、getChildren。

5、觸發wathcer:create、delete、setData。

十、zk的思維導圖:

Zookeeper 面試總結

分享到:
標簽:Zookeeper
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定