中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Zookeeper有哪些特性

發布時間:2021-12-08 11:29:06 來源:億速云 閱讀:177 作者:iii 欄目:大數據

本篇內容主要講解“Zookeeper有哪些特性”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Zookeeper有哪些特性”吧!

Zookeeper 簡介

ZooKeeper致力于提供一個高性能、高可用,且具備嚴格的順序訪問控制能力的分布式協調服務,是雅虎公司創建,是Google的Chubby一個開源的實現,也是Hadoop和Hbase的重要組件。

設計目標

  1. 簡單的數據結構:共享的樹形結構,類似文件系統,存儲于內存;

  2. 可以構建集群:避免單點故障,3-5臺機器就可以組成集群,超過半數正常工作就能對外提供服務;

  3. 順序訪問:對于每個讀請求,zk會分配一個全局唯一的遞增編號,利用這個特性可以實現高級協調服務;

  4. 高性能:基于內存操作,服務于非事務請求,適用于讀操作為主的業務場景。3臺zk集群能達到13w QPS;

哪些常見需要用到ZK

數據發布訂閱:下面的基礎 負載均衡:客戶端的負載均衡 命名服務 Master選舉 集群管理 配置管理 分布式隊列 分布式鎖

ZK的下載跟安裝

百度即可,

Zookeeper有哪些特性

Zookeeper配置文件

Zookeeper有哪些特性Zookeeper有哪些特性

ZK 特性

會話(session)

客戶端與服務端的一次會話連接,本質是TCP長連接,通過會話可以進行心跳檢測和數據傳輸;看下Zk客戶端和服務端成功連接后,就創建了一次會話,ZK會話在整個運行期間的生命周期中,會在不同的會話狀態之間切換,這些狀態包括: CONNECTING、CONNECTED、RECONNECTING、RECONNECTED、CLOSE 一旦客戶端開始創建Zookeeper對象,那么客戶端狀態就會變成CONNECTING狀態,同時客戶端開始嘗試連接服務端,連接成功后,客戶端狀態變為CONNECTED,通常情況下,由于斷網或其他原因,客戶端與服務端之間會出現斷開情況,一旦碰到這種情況,Zookeeper客戶端會自動進行重連服務,同時客戶端狀態再次變成CONNCTING,直到重新連上服務端后,狀態又變為CONNECTED,在通常情況下,客戶端的狀態總是介于CONNECTING和CONNECTED之間。但是,如果出現諸如會話超時、權限檢查或是客戶端主動退出程序等情況,客戶端的狀態就會直接變更為CLOSE狀態

數據模型

ZooKeeper的視圖結構和標準的Unix文件系統類似,其中每個節點稱為數據節點ZNode,每個znode可以存儲數據,還可以掛載子節點,因此可以稱之為。Znode一般存儲小于1M的數據。每一個znode都必須有值,如果沒有值,節點是不能創建成功的。

  1. 在Zookeeper中,znode是一個跟Unix文件系統路徑相似的節點,可以往這個節點存儲或獲取數據

  2. 通過客戶端可對znode進行增刪改查的操作,還可以注冊watcher監控znode的變化。

Zookeeper有哪些特性

Zookeeper節點類型

節點類型非常重要,是后面項目實戰的基礎。 a、Znode有兩種類型: 短暫(ephemeral)(create -e /app1/test1 “test1” 客戶端斷開連接zk刪除ephemeral類型節點) 持久(persistent) (create -s /app1/test2 “test2” 客戶端斷開連接zk不刪除persistent類型節點) b、Znode有四種形式的目錄節點(默認是persistent ) PERSISTENT PERSISTENT_SEQUENTIAL(持久序列/test0000000019 ) EPHEMERAL EPHEMERAL_SEQUENTIAL c、創建znode時設置順序標識,znode名稱后會附加一個值,順序號是一個單調遞增的計數器,由父節點維護 d、在分布式系統中,順序號可以被用于為所有的事件進行全局排序,這樣客戶端可以通過順序號推斷事件的順序

客戶端常用命令

使用 zkCli.sh -server 127.0.0.1:2181 連接到 ZooKeeper 服務,連接成功后,系統會輸出 ZooKeeper 的相關環境以及配置信息。 命令行工具的一些簡單操作如下:

  1. 顯示根目錄下、文件: ls / 使用 ls 命令來查看當前 ZooKeeper 中所包含的內容

  2. 顯示根目錄下、文件: ls2 / 查看當前節點數據并能看到更新次數等數據

  3. 創建文件,并設置初始內容: create /zk "test" 創建一個新的 znode節點“ zk ”以及與它關聯的字符串 [-e] [-s] 【-e 零時節點】 【-s 順序節點】

  4. 獲取文件內容: get /zk 確認 znode 是否包含我們所創建的字符串 [watch]【watch 監聽】

  5. 修改文件內容: set /zk "zkbak" 對 zk 所關聯的字符串進行設置

  6. 刪除文件: delete /zk 將剛才創建的 znode 刪除,如果存在子節點刪除失敗

  7. 遞歸刪除:rmr /zk將剛才創建的 znode 刪除,子節點同時刪除

  8. ?退出客戶端: quit

  9. 幫助命令: help

ACL保障數據的安全

ACL機制,表示為scheme:id:permissions,第一個字段表示采用哪一種機制,第二個id表示用戶,permissions表示相關權限(如只讀,讀寫,管理等)。

通常表示為:scheme:id:permission

  1. schema:代表授權策略

  2. id:代表用戶

  3. permission:代表權限

Scheme world:默認方式,相當于全世界都能訪問 auth:代表已經認證通過的用戶(可以通過addauth digest user:pwd 來添加授權用戶) digest:即用戶名:密碼這種方式認證,這也是業務系統中最常用的 ip:使用Ip地址認證

id id是驗證模式,不同的scheme,id的值也不一樣。 scheme為auth時:username:password scheme為digest時:username:BASE64(SHA1(password)) scheme為ip時:客戶端的ip地址。 scheme為world時anyone。

Permission CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、刪、改、查、管理權限,這5種權限簡寫為crwda(即:每個單詞的首字符縮寫) CREATE(c):創建子節點的權限 DELETE(d):刪除節點的權限 READ(r):讀取節點數據的權限 WRITE(w):修改節點數據的權限 ADMIN(a):設置子節點權限的權限

ACL命令

getAcl

獲取指定節點的ACL信息 create /testDir/testAcl deer # 創建一個子節點 getAcl /testDir/testAcl # 獲取該節點的acl權限信息

setAcl

設置指定節點的ACL信息 setAcl /testDir/testAcl world:anyone:crwa # 設置該節點的acl權限 getAcl /testDir/testAcl # 獲取該節點的acl權限信息,成功后,該節點就少了d權限 create /testDir/testAcl/xyz xyz-data # 創建子節點 delete /testDir/testAcl/xyz # 由于沒有d權限,所以提示無法刪除

addauth

addauth digest user1:123456 # 需要先添加一個用戶 setAcl /testDir/testAcl auth:user1:123456:crwa # 然后才可以拿著這個用戶去設置權限 getAcl /testDir/testAcl # 密碼是以密文的形式存儲的

create /testDir/testAcl/testa aaa
delete /testDir/testAcl/testa # 由于沒有d權限,所以提示無法刪除

退出客戶端后: ls /testDir/testAcl #沒有權限無法訪問 create /testDir/testAcl/testb bbb #沒有權限無法訪問 addauth digest user1:123456 # 重新新增權限后可以訪問了

ACL權限補充

練習setAcl權限的時候由于失誤,導致節點無法刪除
  create /enjoy1/node1  enjoy
  setAcl /enjoy1  world:anyone:r
  這個時候無論是delete 還是rmr都沒有權限刪除
  解決方式:啟用super權限
   使用DigestAuthenticationProvider.generateDigest("super:admin"); 獲得密碼
1.修改zkServer啟動腳本增加
"-Dzookeeper.DigestAuthenticationProvider.superDigest=super:xQJmxLMiHGwaqBvst5y6rkB6HQs="
2.啟動客戶端用管理員登陸
   addauth digest super:admin

常用四字命令

ZooKeeper 支持某些特定的四字命令字母與其的交互。用來獲取 ZooKeeper 服務的當前狀態及相關信息。可通過 telnet 或 nc 向 ZooKeeper 提交相應的命令 :當然,前提是安裝好了nc

echo stat|nc 127.0.0.1 2181 來查看哪個節點被選擇作為follower或者leader 使用echo ruok|nc 127.0.0.1 2181 測試是否啟動了該Server,若回復imok表示已經啟動。 echo dump| nc 127.0.0.1 2181 ,列出未經處理的會話和臨時節點。 echo kill | nc 127.0.0.1 2181 ,關掉server echo conf | nc 127.0.0.1 2181 ,輸出相關服務配置的詳細信息。 echo cons | nc 127.0.0.1 2181 ,列出所有連接到服務器的客戶端的完全的連接 / 會話的詳細信息 echo envi |nc 127.0.0.1 2181 ,輸出關于服務環境的詳細信息(區別于 conf 命令)。 echo reqs | nc 127.0.0.1 2181 ,列出未經處理的請求。 echo wchs | nc 127.0.0.1 2181 ,列出服務器 watch 的詳細信息。 echo wchc | nc 127.0.0.1 2181 ,通過 session 列出服務器 watch 的詳細信息,它的輸出是一個與 watch 相關的會話的列表。 echo wchp | nc 127.0.0.1 2181 ,通過路徑列出服務器 watch 的詳細信息。它輸出一個與 session 相關的路徑。

ZooKeeper 日志可視化

前面以及講了兩個非常重要的配置一個是dataDir,存放的快照數據,一個是dataLogDir,存放的是事務日志文件

事務日志可視化 (LogFormatter) java -cp ../../zookeeper-3.4.6.jar;../../lib/slf4j-api-1.6.1.jar org.apache.zookeeper.server.LogFormatter log.xxxx 數據快照可視化 (SnapshotFormatter) java -cp ../../zookeeper-3.4.6.jar;../../lib/slf4j-api-1.6.1.jar org.apache.zookeeper.server.SnapshotFormatter snapshot.xxxx

ZooInspector

下載然后解壓 進入目錄ZooInspector\build,運行zookeeper-dev-ZooInspector.jar; Zookeeper有哪些特性

java -jar zookeeper-dev-ZooInspector.jar //執行成功后,會彈出java ui client,輸入zk服務地址:ip或者主機名:2181

Zookeeper有哪些特性 

到此,相信大家對“Zookeeper有哪些特性”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

获嘉县| 定兴县| 南城县| 安西县| 大宁县| 古田县| 朝阳县| 秭归县| 惠东县| 漳平市| 灯塔市| 丹江口市| 北宁市| 吴堡县| 绵竹市| 游戏| 灵宝市| 丰台区| 故城县| 鹿邑县| 郁南县| 冷水江市| 岗巴县| 江达县| 米林县| 武胜县| 县级市| 乳源| 工布江达县| 绥德县| 陆河县| 团风县| 洪泽县| 邮箱| 莱阳市| 海宁市| 桃园市| 龙山县| 西贡区| 黄石市| 赤水市|