zookeper基本信息
特性:
一致性:數據一致性,數據按照順序分批入庫
原子性:事務要么成功,要么失敗,不會局部化
單一視圖:客戶端連接集群中任一zk節點,數據都是一致的
可靠性:每次對zk的操作都會保存到服務端
實時性:客戶端可以讀取到zk服務端的最新數據
<使用FileZilla上傳文件到linux服務器,並操作數據庫>
將官網下載好的zookpeer包解壓到/user/local目錄下
zookpeer目錄結構:
bin:主要的運行命令
conf:存放配置文件,要修改zk.cfg:zoo_simple.cfg
contrib:附加功能
dist-maven:mvn編譯后的目錄
docs:文檔
lib:依賴的jar包
recipes:案例demo代碼
zoo.cfg配置:
tikeTime:計算時間單元,比如session超時:N*tikeTime
initLimit:用於集群,允許從節點並且同步到master節點的初始化連接時間,以tikeTime的倍數來表示
synvLimit:用於集群,master主節點與從節點發送消息,請求和應答的時間長度。
dataDir:必須配置,存儲數據的目錄
dataLogDir:如果不配置,回合dataDir共用
clientProt:連接服務器的端口號,默認2181
具體配置:
tikeTime=2000
initLimit=10
synvLimit=5
dataDir=/user/local/zookeper/dataDir
dataLogDir=/user/local/zookeper/dataLogDir
clientProt=2181
zookpeer的數據模型:
zookpeer的數據模型可以理解為linux操作系統目錄模型,每個節點都成為znode,可以有子節點,也可以有數據。
每個zk節點分為臨時節點和永久節點,臨時節點會在客戶端斷開后消失。
每個zk節點有版本號(版本號是累加的),通過命令行顯示節點數據
每個節點發生變化,版本號會累加(樂觀鎖)
刪除/修改過時節點,版本號不匹配會報錯
每個zk節點存儲的數據不宜過大,幾kb即可
zk節點可以設置acl(權限控制列表),可通過權限限制用戶訪問。
zookper數據模型的基本操作:
客戶端連接
查看node結構
關閉客戶端連接
啟動bin目錄的服務端 zkServer.sh:./zkServer.sh start
啟動客戶端: ./zkCli.sh
會出現: [zk: localhost:2181(CONNECTED) 0]
通過help獲取命令列表:[zk: localhost:2181(CONNECTED) 0] help
通過ls查看目錄列表:[zk: localhost:2181(CONNECTED) 1] ls /
[zookpper]
[zk: localhost:2181(CONNECTED) 2] ls /zookpper
[quota]