zookeeper常見命令和常見應用

前言

ZooKeeper自帶一個交互式命令行工具(通過zkCli.shzkCli.cmd啟動),提供了一系列操作ZooKeeper數據節點的命令

下面我們對zookeeper常用命令進行介紹

使用prettyZoo命令行窗口

使用prettyZoo客戶端鏈接zookeeper? 打開zookeeper命令行窗口

如果還沒有安裝zookeeper并且沒有prettyZoo客戶端工具的同志,可以看我這篇文章

使用docker安裝Zookeeper-CSDN博客

鏈接zookeeper

打開zookeeper客戶端命令行窗口

zookeeper常見命令

查詢命令

ls 路徑? ? ? ? ? ? ? ? ? ?查看當前路徑下的子節點

get 路徑? ? ? ? ? ? ? ? ?查看當前路徑節點的信息

創建命令

create [-s] [-e]?[-c] [-t 存活時間]?節點c路徑 節點數據?[acl]

-s:? 創建順序節點(路徑后自動追加遞增序號,如 /path-0000000001)
-e:? 創建臨時節點(會話結束自動刪除)會話就是指服務器和zookeeper的長鏈接

-c:? 創建容器節點 容器節點中沒有任何子節點,容器節點會被一分鐘定時刪除,可以存儲數據

-t:? 創建定時刪除節點,需要到系統配置開啟,不穩定不建議使用
acl:?訪問控制列表

其中,順序節點和臨時節點一般用于構建zookeeper分布式鎖進行使用的

臨時節點實現原理

sessionId是用來維持鏈接會話的

所以通過監控sessionId來確定臨時節點的存在,sessionId結束,臨時節點刪除

就可以實現會話結束臨時節點自動消失的效果了

zookeeper臨時節點實現注冊與發現

服務器注冊到zookeeper上面就是作為客戶端進行會話連接在zookeeper上面創建了一個臨時節點,當這個服務器出現故障下線時候,會話連接會斷開,因為臨時節點是斷開會話自動消失的,所以此時zookeeper上面就沒有這個服務器的注冊信息了,因為注冊的臨時節點自動刪除了

zookeeper構建分布式鎖原理

使用順序臨時節點實現

1、每一個服務器業務請求過來都會創建一個順序序號節點
2、代碼設置最小的節點拿到鎖
3、監聽前面序號節點,前面節點執行完業務之后刪除自己的臨時節點(解鎖),后面那個節點被喚醒開始執行。以此類推可以得到鎖的形式
4、順序節點要使用臨時節點,保證當服務器出現網絡故障的時候鎖自動刪除,其他客戶端重新競爭鎖,防止一直等待那個故障的服務器其他服務器獲取不到鎖導致死鎖

修改命令

set 節點路徑 節點數據?[version]

version:可選版本號 實現樂觀鎖,避免并發覆蓋

zookeeper樂觀鎖實現原理

使用樂觀鎖修改數據分為兩步

查詢出當前數據的版本號

對比當前版本號和獲取版本號是否一樣,一樣修改數據成功,否則失敗

????????這一步是原子操作,zookeeper在代碼中有專一的封裝方法可以調用

刪除命令

delete 節點路徑 [version]

version:可選版本號 實現樂觀鎖,避免并發覆蓋

權限命令

首先,權限是綁定到當前會話的,如果會話失效權限要重新賦予

說是給會話注冊賬號密碼,其實賬號密碼本質就是一個鑒權碼,訪問前驗證一下當前會話鑒權碼是否匹配

權限設置

注冊當前會話的賬號密碼

addauth digest 賬號:密碼

這里賦予好賬號密碼,下面就可以訪問針對這個身份開放權限的節點

創建節點并設置權限

create 節點路徑 節點內容 auth:賬號:密碼:權限字符

權限字符

????????c:create 創建權限,允許在該節點下創建子節點

????????w:write 更新權限,允許更新該節點的數據

????????r:read 讀取權限,允許讀取該節點的內容以及子節點的列表信息

????????d:delete 刪除權限,允許刪除該節點的子節點信息

????????a:admin 管理者權限,允許對該節點進行acl權限設置

權限字符 就是填上面這幾個字母,想賦予多個就連著追加多個字母即可

監聽節點命令

作用: 監聽zookeeper上面某一個節點的變化

get -w 路徑? ? ? ? ? ? ? ? ? ?查詢這個路徑節點的內容,并且在其他會話修改這個路徑節點的時候,當前會話會提示這個節點發生變化,只監聽一次數據變化,創建子節點監聽不到,修改和刪除節點內容可以監聽到

ls -w 路徑? ? ? ? ? ? ? ? ? ? ?監聽這個節點目錄下面子節點的變化(創建刪除),不能監聽節點內容

ls -R -w 路徑? ? ? ? ? ? ? ? 遞歸式的監聽這個節點目錄下的所有目錄的變化(創建刪除),不能監聽節點內容

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917632.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917632.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917632.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端異步任務處理總結

一、異步任務常見場景網絡請求:fetch()、axios 等 API 調用定時操作:setTimeout、setInterval用戶交互:事件監聽回調資源加載:圖片/腳本動態加載Web Workers:后臺線程計算二、核心處理方案1. Promise(ES6&a…

機器學習第三課之邏輯回歸(二)LogisticRegression

目錄 簡介 一.分類評估?法 1.混淆矩陣 2.精確率(Precision)與召回率(Recall) 3.F1-score 4.分類評估報告api 2.正則化懲罰 3.?擬合和過擬合 4.K折交叉驗證 5.代碼分析 簡介 接上一篇博客最后 機器學習第二課之邏輯回歸(一)LogisticRegres…

基于ELK Stack的實時日志分析與智能告警實踐指南

基于ELK Stack的實時日志分析與智能告警實踐指南 一、業務場景描述 在生產環境中,服務實例數量眾多,日志量激增,傳統的文本 grep 或 SSH 登錄方式已無法滿足實時監控與故障定位需求。我們需要搭建一個可擴展、低延遲的日志收集與分析平臺&…

需求變更過程中出現的團隊資源沖突問題處理的一些小技巧

??一、資源沖突的典型場景?? ??技術資源爭奪??:多個需求同時需要同一開發人員或技術專家支持 ??人力資源過載??:突發需求導致團隊成員工作量超負荷(如同時處理3個緊急需求) ??設備/環境沖突??:測試服務器資源不足或特定開發工具許可證被占用 ??跨團隊協…

基于Matlab圖像處理的液晶顯示器表面缺陷檢測與分類研究

本課題設計并實現了一種基于 MATLAB 的圖像缺陷檢測系統,系統集成中值濾波、對比度增強、梯度檢測與區域分析等圖像處理技術,能夠對圖像中的點狀、線狀和塊狀缺陷進行有效識別與分類。用戶可通過圖形用戶界面(GUI)導入待測圖像&am…

prometheus應用demo(一)接口監控

目錄 完整代碼(純Cursor生成) 1、pom 2、配置和啟動類 3、自定義指標bean 4、上報 5、業務代碼 一、統計API請求(次數、響應碼等) 1、統計總數 關鍵代碼: (1)自定義指標DTO &#xff0…

逃離智能家居“孤島”!用 Home Assistant 打造你的全屋互聯自由王國

文章目錄🤔 痛點暴擊:智能家居的“巴別塔困境”🛠? Home Assistant 是個啥?簡單粗暴版定義🔍 硬核拆解:Home Assistant 的魅力之源🚀 上車指南:如何開始你的 HA 之旅?第…

數據結構:如何判斷一個鏈表中是否存在環(Check for LOOP in Linked List)

目錄 初始思考:什么叫“鏈表有環”? ? 第一種直接想法(失敗):我們是不是能“記住走過的節點”? 那我們換一個思路:我們能否只用兩個指針來檢測環? 第一步:定義兩個指…

深入理解Java的SPI機制,使用auto-service庫優化SPI

文章目錄一、簡介二、使用1、服務提供者(或者第三方公共):定義接口2、服務提供者:定義實現類3、服務提供者:注冊服務4、構建服務提供者jar包5、客戶端:使用 ServiceLoader 來加載服務三、源碼分析1、源碼2、…

PPT自動化 python-pptx - 10 : 表格(tables)

在日常工作中,我們經常需要制作包含表格的 PowerPoint 演示文稿,以此清晰展示數據或文本信息。手動制作不僅耗時,當數據更新時還需重復操作,效率低下。而 python-pptx 庫為我們提供了自動化操作 PowerPoint 表格的可能。本文將詳細…

在安卓中使用 FFmpegKit 剪切視頻并添加文字水印

在安卓中用到的三方庫:https://github.com/arthenica/ffmpeg-kit 這個庫很強大,支持很多平臺,每個平臺都有各自的分支代碼,用了一段時間,穩定性挺好的, 找到安卓下的分支:FFmpegKit for Andro…

Flask + HTML 項目開發思路

Flask HTML 項目開發思路:以公共資源交易信息展示為例 一、開篇明義——為什么選 Flask 框架 在眾多 Python Web 框架(如 Django、Tornado 等)里,本次項目堅定選擇 Flask,背后有清晰的技術考量: 1. 輕量…

Vue中:deep()和 ::v-deep選擇器的區別

在 Vue.js 中,:deep()和 ::v-deep都是用于穿透組件作用域的深度選擇器,但它們在語法、適用場景和版本支持上存在區別。以下是兩者的核心差異:一、??語法與用法? :Vue2中用 ::v-deep,Vue2中不支持:deep()&#xff0c…

Deep learning based descriptor

1、DH3D: Deep Hierarchical 3D Descriptors for Robust Large-Scale 6DoF Relocalization 論文鏈接 代碼鏈接 這是一篇訓練點云的文章,在訓練出local descriptor之后,通過聚類的方法得出global descriptor,并且提出了hierarchical network&…

PandasAI連接LLM對MySQL數據庫進行數據分析

1. 引言 在之前的文章《PandasAI連接LLM進行智能數據分析》中實現了使用PandasAI連接與DeepSeek模型通過自然語言進行數據分析。不過那個例子中使用的是PandasAI 2.X,并且使用的是本地.csv文件來作為數據。在實際應用的系統中,使用.csv作為庫表的情況比…

FloodFill算法——DFS

FloodFill算法就是用來尋找性質相同的連通快的算法,這篇博客都是用dfs來實現FloodFill算法 1.圖像渲染 題目鏈接:733. 圖像渲染 - 力扣(LeetCode) 題目解析:將和(sr,sc)相連的所有像素相同的…

【BUUCTF系列】[極客大挑戰 2019]LoveSQL 1

本文僅用于技術研究,禁止用于非法用途。 Author:枷鎖 文章目錄一、題目核心漏洞分析二、關鍵解題步驟與技術解析1. 確定列數(ORDER BY)2. 聯合查詢獲取表名3. 爆破字段名4. 提取Flag三、漏洞根源與防御方案1. 漏洞成因2. 防御措施四、CTF技巧…

AI時代,童裝銷售的“指路明燈”

別看現在AI、大數據這些詞眼花繚亂的,當年我剛入行那會兒,也跟你一樣,對著一堆庫存和銷量數據發愁,不知道勁兒該往哪使。童裝銷售這行,看著簡單,其實水挺深。不過呢,這二十多年摸爬滾打下來&…

Swin-Transformer從淺入深詳解

第一部分:出現背景在 Swin Transformer 出現之前,計算機視覺(Computer Vision, CV)領域主要由 CNN (卷積神經網絡) 主導。后來,NLP(自然語言處理)領域的 Transformer 模型被引入 CV,…

如何手動打包 Linux(麒麟系統)的 Qt 程序

gcc版本 gcc版本確保目標系統(運行環境)的 GCC 版本 高于或等于開發環境的版本,否則程序無法在目標平臺運行。通過 gcc -v 可查看當前版本。cmake生成可執行文件 強烈建議在cmakelists添加設置運行時 rpath 為 $ORIGIN/…/lib(相對…