1. 程式人生 > >zoo conf配置與api描述

zoo conf配置與api描述

在zookeeper中叢集的角色有以下幾種:  leader 、follower、 observer

observer 只接受狀態更改,但是不進行leader選舉投票從而對系統水平擴充套件更方便了,

叢集配置:server.id=ip:port:port server.id 為當前myid存的值,ip為zookeeper的ip地址,第一個port為leader和follower交換資料的埠系統,第二個port為leader選舉所用的埠


如果需要增加observer節點

     zoo.cfg中 增加 ;peerType=observer

server.3=192.168.111.136:2888:3181:observer

 

zoo.cfg配置檔案分析

tickTime=2000  zookeeper中最小的時間單位長度 (ms)

initLimit=10  follower節點啟動後與leader節點完成資料同步的時間

syncLimit=5 leader節點和follower節點進行心跳檢測的最大延時時間

dataDir=/tmp/zookeeper  表示zookeeper伺服器儲存快照檔案的目錄

dataLogDir 表示配置 zookeeper事務日誌的儲存路徑,預設指定在dataDir目錄下

clientPort 表示客戶端和服務端建立連線的埠號: 2181

 

zookeeper中的一些概念

資料模型

zookeeper的資料模型和檔案系統類似,每一個節點稱為:znode.  是zookeeper中的最小資料單元。每一個znode上都可以

儲存資料和掛載子節點。 從而構成一個層次化的屬性結構

節點特性

持久化節點  : 節點建立後會一直存在zookeeper伺服器上,直到主動刪除

持久化有序節點 :每個節點都會為它的一級子節點維護一個順序

臨時節點 : 臨時節點的生命週期和客戶端的會話保持一致。當客戶端會話失效,該節點自動清理

臨時有序節點 : 在臨時節點上多勒一個順序性特性

會話

Watcher

zookeeper提供了分散式資料釋出/訂閱,zookeeper允許客戶端向伺服器註冊一個watcher監聽。當伺服器端的節點觸發指定事件的時候

會觸發watcher。服務端會向客戶端傳送一個事件通知
watcher的通知是一次性,一旦觸發一次通知後,該watcher就失效

ACL

zookeeper提供控制節點訪問許可權的功能,用於有效的保證zookeeper中資料的安全性。避免誤操作而導致系統出現重大事故。

CREATE /READ/WRITE/DELETE/ADMIN

 

zookeeper的命令操作

1. create [-s] [-e] path data acl

-s 表示節點是否有序

-e 表示是否為臨時節點

預設情況下,是持久化節點

2. get path [watch]

獲得指定 path的資訊

 

3.set path data [version]

修改節點 path對應的data

樂觀鎖的概念

資料庫裡面有一個 version 欄位去控制資料行的版本號

4.delete path [version]

刪除節點

stat資訊

cversion = 0       子節點的版本號

aclVersion = 0     表示acl的版本號,修改節點許可權

dataVersion = 1    表示的是當前節點資料的版本號

 

czxid    節點被建立時的事務ID

mzxid   節點最後一次被更新的事務ID

pzxid    當前節點下的子節點最後一次被修改時的事務ID

 

ctime = Sat Aug 05 20:48:26 CST 2017

mtime = Sat Aug 05 20:48:50 CST 2017

 

 

 

 

cZxid = 0x500000015

ctime = Sat Aug 05 20:48:26 CST 2017

mZxid = 0x500000016

mtime = Sat Aug 05 20:48:50 CST 2017

pZxid = 0x500000015

cversion = 0

dataVersion = 1

aclVersion = 0

ephemeralOwner = 0x0   建立臨時節點的時候,會有一個sessionId 。 該值儲存的就是這個sessionid

dataLength = 3    資料值長度

numChildren = 0  子節點數