av老司机免费在线,深爱激情久久,波多野结衣精品,亚洲激情自拍偷拍

當(dāng)前位置:首頁 > 二級(jí)建造師 > 正文

二級(jí)建造師注冊(cè)需要什么材料二級(jí)建造師注冊(cè)前先要準(zhǔn)備的步驟

  根據(jù)如上思維導(dǎo)圖,我們來展開對(duì)Zookeeper的基本的一些概念解釋。

  一、集群角色

  Leader

  Leader服務(wù)器是整個(gè)Zookeeper集群工作機(jī)制中的核心

  Follower

  Follower服務(wù)器是Zookeeper集群狀態(tài)的跟隨者

  Observer

  Observer服務(wù)器充當(dāng)一個(gè)觀察者的角色Leader,F(xiàn)ollower 設(shè)計(jì)模式;Observer 觀察者設(shè)計(jì)模式

二級(jí)建造師注冊(cè)需要什么材料二級(jí)建造師注冊(cè)前先要準(zhǔn)備的步驟  第1張

  二、會(huì)話

  會(huì)話是指客戶端和ZooKeeper服務(wù)器的連接,ZooKeeper中的會(huì)話叫Session,客戶端靠與服務(wù)器建立一個(gè)TCP的長連接;來維持一個(gè)Session,客戶端在啟動(dòng)的時(shí)候首先會(huì)與服務(wù)器建立一個(gè)TCP連接,通過這個(gè)連接,客戶端能夠通過心跳檢測與服務(wù)器保持有效的會(huì)話,也能向ZK服務(wù)器發(fā)送請(qǐng)求并獲得響應(yīng)。

  三、數(shù)據(jù)節(jié)點(diǎn)

  Zookeeper中的節(jié)點(diǎn)有兩類:

集群中的一臺(tái)機(jī)器稱為一個(gè)節(jié)點(diǎn)

數(shù)據(jù)模型中的數(shù)據(jù)單元Znode,分為持久節(jié)點(diǎn)和臨時(shí)節(jié)點(diǎn)

二級(jí)建造師注冊(cè)需要什么材料二級(jí)建造師注冊(cè)前先要準(zhǔn)備的步驟  第2張

  Zookeeper的數(shù)據(jù)模型是一棵樹,樹的節(jié)點(diǎn)就是Znode,Znode中可以保存信息。

  如下圖所示:

  

  ZK大致數(shù)據(jù)結(jié)構(gòu)跟上圖是一致的,如上圖所示這個(gè)圖就像一棵樹,這個(gè)樹有個(gè)根節(jié)點(diǎn),然后其下有些子節(jié)點(diǎn),然后每個(gè)子節(jié)點(diǎn)其下又可以有子節(jié)點(diǎn),大多數(shù)的開發(fā)就是跟zk的這些數(shù)據(jù)節(jié)點(diǎn)打交道,來讀寫這些數(shù)據(jù)節(jié)點(diǎn),來完成任務(wù)。

  四、版本

  ZK中的版本,是用來記錄節(jié)點(diǎn)數(shù)據(jù)或者是節(jié)點(diǎn)的子節(jié)點(diǎn)列表或者是權(quán)限信息的修改次數(shù),注意是這里是修改次數(shù)。如果一個(gè)節(jié)點(diǎn)的version是1,那就代表說這個(gè)節(jié)點(diǎn)從創(chuàng)建以來被修改了一次,那么這個(gè)版本怎么用呢,典型的我們可以利用版本來實(shí)現(xiàn)分布式的鎖服務(wù)。我們知道在數(shù)據(jù)庫中,一般有兩種鎖,一種是悲觀鎖一種是樂觀鎖。

  悲觀鎖

  悲觀鎖又叫悲觀并發(fā)鎖,是數(shù)據(jù)庫中一種非常嚴(yán)格的鎖策略,具有強(qiáng)烈的排他性,能夠避免不同事務(wù)對(duì)同一數(shù)據(jù)并發(fā)更新造成的數(shù)據(jù)不一致性,在上一個(gè)事務(wù)沒有完成之前,下一個(gè)事務(wù)不能訪問相同的資源,適合數(shù)據(jù)更新競爭非常激烈的場景;

  樂觀鎖

  相比悲觀鎖,樂觀鎖使用的場景會(huì)更多,悲觀鎖認(rèn)為事務(wù)訪問相同數(shù)據(jù)的時(shí)候一定會(huì)出現(xiàn)相互的干擾,所以簡單粗暴的使用排他訪問的方式,而樂觀鎖認(rèn)為不同事務(wù)訪問相同資源是很少出現(xiàn)相互干擾的情況,因此在事務(wù)處理期間不需要進(jìn)行并發(fā)控制,當(dāng)然樂觀鎖也是鎖,它還是會(huì)有并發(fā)的控制!對(duì)于數(shù)據(jù)庫我們通常的做法是在每個(gè)表中增加一個(gè)version版本字段,事務(wù)修改數(shù)據(jù)之前先讀出數(shù)據(jù),當(dāng)然版號(hào)也順勢讀取出來,然后把這個(gè)讀取出來的版本號(hào)加入到更新語句的條件中,比如,讀取出來的版本號(hào)是1,我們修改數(shù)據(jù)的語句可以這樣寫,update 某某表 set 字段一=某某值 where id=1 and version=1,那如果更新失敗了說明以后其他事務(wù)已經(jīng)修改過數(shù)據(jù)了,那系統(tǒng)需要拋出異常給客戶端,讓客戶端自行處理,客戶端可以選擇重試。鎖,ZK中版本有類式的作用。

  ZK的版本類型有三種:version cversion aversion

  

  五、Watcher

  Watcher我們可以理解為他是一個(gè)事件監(jiān)聽器

  ZooKeeper允許用戶在指定節(jié)點(diǎn)上注冊(cè)一些Watcher,當(dāng)數(shù)據(jù)節(jié)點(diǎn)發(fā)生變化的時(shí)候,ZooKeeper服務(wù)器會(huì)把這個(gè)變化的通知發(fā)送給感興趣的客戶端。

  

  兩個(gè)客戶端都在zookeeper集群中注冊(cè)了watcher(事件監(jiān)聽器),那么當(dāng)zk中的節(jié)點(diǎn)數(shù)據(jù)發(fā)生變化的時(shí)候,zk會(huì)把這一變化的通知發(fā)送給客戶端,當(dāng)客戶端收到這個(gè)變化通知的時(shí)候,它可以再回到zk中,去取得這個(gè)數(shù)據(jù)的詳細(xì)信息。

  六、ACL權(quán)限控制

  ACL是Access Control Lists 的簡寫, ZooKeeper采用ACL策略來進(jìn)行權(quán)限控制,有以下權(quán)限:

CREATE: 創(chuàng)建子節(jié)點(diǎn)的權(quán)限

READ: 獲取節(jié)點(diǎn)數(shù)據(jù)和子節(jié)點(diǎn)列表的權(quán)限

WRITE: 更新節(jié)點(diǎn)數(shù)據(jù)的權(quán)限

DELETE: 刪除子節(jié)點(diǎn)的權(quán)限

ADMIN: 設(shè)置節(jié)點(diǎn)ACL的權(quán)限

  上面的權(quán)限有點(diǎn)類似我們信息系統(tǒng)的權(quán)限管理,我們?cè)陂_發(fā)系統(tǒng)的時(shí)候一般也會(huì)對(duì)數(shù)據(jù)做這些權(quán)限管理,一個(gè)zk集群可能會(huì)服務(wù)很多的業(yè)務(wù),尤其是一些大公司,zk集群的節(jié)點(diǎn)中會(huì)保存重要的信息,那么這些信息通常只能對(duì)一部分的訪問者開放,通過acl我們可以對(duì)某些節(jié)點(diǎn)的訪問進(jìn)行授權(quán),從而來保證數(shù)據(jù)的安全。

  來源:開源技術(shù)社區(qū)

  邀請(qǐng)加入hadoop學(xué)習(xí)、交流、答疑群:361654649

發(fā)表評(píng)論

主站蜘蛛池模板: 杭锦后旗| 榆社县| 呼和浩特市| 建水县| 定襄县| 屏东市| 南涧| 大石桥市| 博兴县| 兴义市| 手游| 东兰县| 锡林郭勒盟| 兰州市| 鸡泽县| 临颍县| 渭源县| 正蓝旗| 密云县| 鄂伦春自治旗| 江油市| 九江县| 象山县| 朝阳县| 云南省| 绥化市| 钟山县| 广东省| 岐山县| 临汾市| 芜湖市| 万载县| 保靖县| 高邑县| 尤溪县| 华容县| 洛宁县| 屯留县| 韩城市| 郯城县| 广宁县|