zookeeper節點類型、命令詳解、配置文件說明


絕對重要!

       zkServer.sh stat

       zkServer.sh status

zkCli.sh -server ip:port

create path data

rmr path

ls

get

 

數據結構

 

節點類型

n  持久非順序節點

create /node/subnode data

 

n  持久順序節點

create -s /node/sencodnode data

 

自動生成主鍵使用

n  臨時順序節點

create  -e -s /tempnode2 data

 

n  臨時非順序節點

create  -e /tempnode data

臨時節點:創建節點的連接關閉后,節點自動被刪除 就是臨時節點。

 

 

持久  / 臨時

順序 / 非順序

 

順序節點:節點序號自增,可以創建子節點

臨時節點:隨着創建節點的事務關閉而自動刪除。 不能創建子節點。

 

 

節點信息

 

  C:ceate

查看一個文件的狀態信息

[zk: localhost:2181(CONNECTED) 1] stat /a
cZxid = 0x200000009
ctime = Thu Mar 22 13:07:19 CST 2018
mZxid = 0x200000009
mtime = Thu Mar 22 13:07:19 CST 2018
pZxid = 0x200000009
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 1
numChildren = 0

信息說明

狀態屬性

說明

cZxid

數據節點創建時的事務ID

ctime

數據節點創建時的時間

mZxid

數據節點最后一次更新時的事務ID

mtime

數據節點最后一次更新時的時間

pZxid

數據節點的子節點列表最后一次被修改

(是子節點列表變更,而不是子節點內容變更)時的事務ID

cversion

子節點的版本號,當添加/刪除子節點的時候發生改變

dataVersion

數據節點的版本號 僅僅當data屬性發生改變的時候而改變

aclVersion

數據節點的ACL版本號

ephemeralOwner

如果節點是臨時節點,則表示創建該節點的會話的

SessionID;

如果節點是持久節點,則該屬性值為0

dataLength

數據內容的長度

numChildren

數據節點當前的子節點個數

重要命令詳解

管理命令

n zkServer.cmd

n zkServer.sh

n  參數

n  start

n  start-foreground

n  stop

n  restart

n  status

n  upgrade

n  print-cmd

 

n zkCli.sh

 

n zkCli.cmd

客戶端命令

  •  
  • help
  • 節點管理
    •  
    • rmr path

 

  • get path [watch] 

監視某一個節點,通常情況 監視被刪除或者修改。

  • stat path [watch]

stat 和 get 區別  前者不顯示數據 后者顯示數據

  • create [-s] [-e] path data acl
  • set path data [version]

修改某個path 下的對應的版本號的數據。Path+版本號做唯一約束進行修改

  • delete path [version]

常常用於處理分布式樂觀鎖

  • ls path [watch]
  • ls2 path [watch]    

這個命令 等於  ls + stat

 

  • 配額管理  
    • setquota -n|-b val path
    • delquota [-n|-b] path
    • listquota path

超出配額的時候僅僅給出警告,但是並不拋出異常或者是導致操作失敗.

 

  • 命令管理
    • history  

列出歷史執行命令

  • redo cmdno

重復執行歷史命令

redo  10

  • printwatches on|off
  • sync path

以下幾個是權限管理

  • setAcl path acl
  • addauth scheme auth
  • getAcl path

獲取權限.

 

 

 

  • 連接管理
    • quit

如果有連接 則關閉連接;退出終端。

  • close

關閉當前連接 但是不退出客戶端

  • connect host:port

連接某一個zk 的服務器

 

配置文件說明

1、tickTime=2000

   以毫秒為單位的心跳。是zk維持分布式服務的一個基本的時間單位。

# The number of milliseconds of each tick

    

2、initLimit=10

   時間表示的是 tickTime*10 ,得到時間是20秒。

   新加進來的服務初始化的時候能夠容忍的時間。

    

 

3、syncLimit=5

   同步的時候 經過5個時間單位 同步認為失敗。

   

    

4、clientPort  表示對外服務提供的端口。 默認數值2181.

    當前的zkServer 綁定哪個端口.

   

5、dataDir   存儲的數據  節點的數據、日志

   節點數據存放的位置.進程id 當前的服務節點編號.

   

6、

只有配置集群的時候這個才有意義.

server.X=A:B:C

   只有在集群的情況下才使用。

    X 表示的服務的編號

    A 表示某個服務器的地址

    B 服務之間需要交互數據,在數據進行交互的時候所使用的端口

       默認數值:2888

    C: 選舉leader 使用的端口 默認使用3888

 

 

 

 

 

Leader 產生:才有投票的算法,帕克西算法.

通常情況下,zk的集群個數是奇數個. 集群新增節點的時候,不影響leader角色.

如果leader退出集群,則集群會自動選舉新的leader

 

應用場景

分布式框架結構下使用.

應用場景

提供的服務包括:統一命名服務、統一配置管理、統一集群管理、服務器節點動態上下線、軟負載均衡等。

統一命名服務

 

 比如項目中經常用到域名,但是ip地址可能會發生改變.使用這個方式避免了因為IP地址發生改變而去重新修改項目的問題.

統一配置管理

 

統一集群管理

 

服務器動態上下線

 

負載均衡

 

    Zookeeper 當中的節點充當每個服務器訪問次數的計數器,當有新的請求發送過來的時候,將新的請求派發給服務次數最少的那個上邊.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM