分佈式註冊中心

1.爲啥要用?

分佈式中機器,應用很多,服務調用方需要知道接口地址,然後在配置文件中配置,新加,修改配置文件很頻繁,很不方便。

使用註冊中心,服務提供方和調用方將自己信息放到註冊中心,即可使用。

2.常用的註冊中心:zookeepr,eurkea

3.zookeepr數據模型:

  • 類似linux文件目錄
  • 節點:ZK中,叫zNode。“節點”分爲兩類,第一類同樣是指構成集羣的機器;第二類是指數據模型中的數據單元,我們稱之爲數據節點。數據節點沒理解。
  • 節點有效性:每個節點分爲臨時節點永久節點,臨時節點在客戶端會話斷開後消失,而且臨時節點下不能存在子節點。永久節點就相當於進行了持久化,只能人爲的去刪除;臨時節點也可以人爲的刪除,但是在session失效後,臨時節點的所有數據都會丟失。
  • 節點權限:節點有權限,創建節點時候可以設置訪問的對象。
  • 節點版本號:節點修改時,版本號更新(說是和樂觀鎖類型,我沒看過)

4.zookeepr操作命令

  • 創建節點  create -s/-e  path  data   acl     其中-s爲永久節點,-e臨時節點,path節點路徑,data節點內容,acl節點操作權限
  • 查看  ls  path    例如:ls  / 查看根節點的子節點
  • 獲取節點數據   get path
  • 查看節點狀態  stat  path
  • 修改節點數據  set  path data
  • 刪除節點   delete path

5.session機制

  • 服務器給每一個client發一個session,有過期時間,每間隔一個心跳時間,向服務器發送請求,如果服務器沒有收到,證明該節點死亡,將該節點刪除。

6.watcher機制:沒看懂

沒看懂爲啥他要使用這個。

步驟:1.client向服務端按註冊,client觸發watcher;發送watcher,會將client存放一份到本地。

       2.服務端向客戶端發送消息,將消息存到

watcher操作  get stsat  對自己、子節點操作  刪除,新增會觸發,修改不會。孫子節點都不會生效。

7.acl權限控制

  • 設置時機:創建節點時候;之後用setAcl
  • cdrwa   創建、刪除、讀取、寫入、管理

8.選舉機制和選舉模式

三種角色

  1. leader:集羣中唯一可以寫請求的處理着,進行發起投票和決議
  2. follower:接收客戶端請求,處理讀請求;將寫請求發給leader;參與選舉leader投票。
  3. observer:沒有選舉權限的follower.作用:在選舉的同時,可能會有很高的讀請求,它可以幫助follower在忙時處理讀請求,提高系統的處理量。

三種選舉模式

  1. 恢復模式:leader奔潰,會選一個新leader,直到集羣恢復工作。
  2. 同步模式:新leader選出後,多個follower會同步新leader上的內容,知道大多數follower同步完成,模式結束。恢復模式也結束。恢復模式包含了同步模式。
  3. 廣播模式:客戶端發起寫操作,leader發佈廣播到follower,大多數follower同意,leader修改數據,建修改後結果廣播給其他follower

9.zk集羣選舉狀態

兩個參數

1.myid:集羣中服務器唯一標識。

2. zxid: long類型。爲64位,前32位:epoch  每個leader有一個epoch ,新leader產生,就會有個epoch值,會同步到其他server的             epoch

         後32位:xid    爲zk的事務id,不知道咋用。

選舉狀態:

looking:選舉狀態

leading:領導狀態

following:隨從狀態

observing:觀察狀態:那些沒投票權的observe服務器,在同步leader數據時狀態。

選舉發生的時機和選舉算法:

集羣剛啓動時候;leader奔潰時候

對比(myid,zxid),先對比zxid,zxid大者(大表示數據越新)勝出,成爲leader,如果zxid一致,則myid
大者成爲leader
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章