分布式鎖3: zk實現分布式鎖

一 zk 實現分布式鎖

1.1 zk分布式操作命令

1.指令:
?? ??? ?ls /
?? ??? ?get /zookeeper?
?? ??? ?create /aa "test"
?? ??? ?delete /aa?
?? ??? ?set /aa "test1"

2..znode節點類型:
?? ??? ?永久節點:create /path content
?? ??? ?臨時節點:create -e /path content 。只要客戶端程序斷開鏈接自動刪除
?? ??? ?永久序列化節點:create -s /path content?
?? ??? ?臨時序列化節點:create -s -e /path content?

1.2 zk的4種目錄樹

ookeeper提供一個多層級的節點命名空間(節點稱為znode),每個節點都用一個以斜杠(/)分隔的路徑表示,而且每個節點都有父節點(根節點除外),非常類似于文件系統。并且每個節點都是唯一的。znode節點有四種類型:

1.PERSISTENT:永久節點。客戶端與zookeeper斷開連接后,該節點依舊存在

2.EPHEMERAL:臨時節點。客戶端與zookeeper斷開連接后,該節點被刪除

3.PERSISTENT_SEQUENTIAL:永久節點、序列化。客戶端與zookeeper斷開連接后,該節點依舊存在,只是Zookeeper給該節點名稱進行順序編號

4.EPHEMERAL_SEQUENTIAL:臨時節點、序列化。客戶端與zookeeper斷開連接后,該節點被刪除,只是Zookeeper給該節點名稱進行順序編號

1.3 實戰操作

1.進入zk客戶端

./zkCli.sh? ? ? ? # 查看zk客戶端

2.創建節點命令

[zk: localhost:2181(CONNECTED) 12] get /sz
test
[zk: localhost:2181(CONNECTED) 13] set /sz test123
[zk: localhost:2181(CONNECTED) 14] get /sz
test123
[zk: localhost:2181(CONNECTED) 15]?

3.案例

[zk: localhost:2181(CONNECTED) 0] create /aa test ?# 創建持久化節點
Created /aa
[zk: localhost:2181(CONNECTED) 1] create -s /bb test ?# 創建持久序列化節點
Created /bb0000000001
[zk: localhost:2181(CONNECTED) 2] create -e /cc test ?# 創建臨時節點
Created /cc
[zk: localhost:2181(CONNECTED) 3] create -e -s /dd test ?# 創建臨時序列化節點
Created /dd0000000003
[zk: localhost:2181(CONNECTED) 4] ls / ? # 查看某個節點下的子節點
[aa, bb0000000001, cc, dd0000000003, zookeeper]
[zk: localhost:2181(CONNECTED) 5] stat / ?# 查看某個節點的狀態
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x5
cversion = 3
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 5
[zk: localhost:2181(CONNECTED) 6] get /aa ?# 查看某個節點的內容
test
[zk: localhost:2181(CONNECTED) 11] delete /aa ?# 刪除某個節點
[zk: localhost:2181(CONNECTED) 7] ls / ?# 再次查看
[bb0000000001, cc, dd0000000003, zookeeper]

1.4 zk的監聽事件

在讀取數據時,我們可以同時對節點設置事件監聽,當節點數據或結構變化時,zookeeper會通知客戶端。當前zookeeper針對節點的監聽有如下四種事件:
??5.節點的事件監聽:一次性
?? ??? ?1.節點創建:NodeCreated
?? ??? ??? ?stat -w /xx?
?? ??? ?2.節點刪除:NodeDeleted
?? ??? ??? ?stat -w /xx
?? ??? ?3.節點數據變化:NodeDataChanged
?? ??? ??? ?get -w /xx
?? ??? ?4.子節點變化:NodeChildrenChanged
?? ??? ??? ?ls -w /xx

1.客戶端

[zk: localhost:2181(CONNECTED) 28] set /teng 1234
[zk: localhost:2181(CONNECTED) 29]?
2.客戶端2:會提示目錄/teng 發生了改變

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

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

相關文章

優秀智慧園區案例 - 上海世博文化公園智慧園區,先進智慧園區建設方案經驗

一、項目背景 世博文化公園是上海的綠色新地標,是生態自然永續、文化融合創新、市民歡聚共享的大公園。作為世博地區的城市更新項目,世博文化公園的建設關乎上海城市風貌、上海文化展示、城市生態環境、市民游客體驗、上海服務品牌等,被賦予…

依托數據、平臺、知識增強等優勢 夸克大模型大幅降低問答幻覺率

“大模型時代,夸克有巨大機會創造出革新性搜索產品。”11月22日,夸克大模型公布了其面向搜索、生產力工具和資產管理助手的大模型技術布局。數據顯示,夸克千億級參數大模型登頂C-Eval和CMMLU兩大權威榜單,夸克百億級參數大模型同樣…

電大搜題——讓學習變得輕松高效

作為一名現代學者,您一定時刻關注著教育領域的進展和創新。今天,我將向大家介紹一個名為“電大搜題”的神奇工具,它將為您的學習之路帶來一場完美的革命。 在快節奏的現代社會中,學習已經成為每個人追求成功的必經之路。然而&…

【數據結構】動態順序表詳解

目錄 1.順序表的概念及結構 2.動態順序表的實現 2.1創建新項目 2.2動態順序表的創建 2.3接口的實現及測其功能 2.3.1初始化 2.3.2尾插 2.3.3頭插 2.3.4尾刪&頭刪 2.3.5打印&從任意位置插入 2.3.6刪除任意位置的數據 2.3.7查找 2.3.8銷毀順序表 3.結語 He…

【交易誤區】初學者常犯的MT4外匯交易錯誤有哪些?

作為初學者,踏入外匯交易市場時,往往會陷入一些常見的誤區,導致交易效果不佳甚至遭受損失。在本文中,我將列舉并解釋五個初學者常見的MT4外匯交易錯誤,并提供相應的解決方案,幫助您避免這些錯誤&#xff0c…

java項目之社區互助平臺(ssm+vue)

項目簡介 社區互助平臺實現了以下功能: 1、一般用戶的功能及權限 所謂一般用戶就是指還沒有注冊的過客,他們可以瀏覽主頁面上的信息。但如果有中意的社區互助信息時,要登錄注冊,只有注冊成功才有的權限。2、管理員的功能及權限 用戶信息的添…

react大文件上傳

目錄 大文件上傳優點: 大文件上傳缺點: 大文件上傳原理: 為什么要用md5 實現流程: 部分代碼1: 部分代碼2:? 大文件上傳優點: 文件太大分片上傳能加快上傳速度,提高用戶體驗能斷點續傳 如果上次上傳失敗…

簡單工程模式

代碼實現 //simpleFactory.h #ifndef _SimpleFactory_H_ #define _SimpleFactory_H_#include <iostream> #include <exception> #include <string>using namespace std;class Operation { protected:double _numberA 0;double _numberB 0; public:Operat…

udp通信socket關閉后,緩存不清空

udp通信socket關閉后&#xff0c;緩存不清空 udp通信socket關閉后&#xff0c;緩存不清空如何清空udp緩存 udp通信socket關閉后&#xff0c;緩存不清空 關閉一個 UDP socket 連接后&#xff0c;底層接收緩沖區中存儲的數據不會被清空。實際上&#xff0c;關閉 socket 連接并不…

MybatisX插件使用

Mybatis X插件 MybatisX 是一款基于 IDEA 的快速開發插件&#xff0c;為效率而生。MybatisX官網&#xff1a;https://baomidou.com/pages/ba5b24/#%E5%8A%9F%E8%83%BD安裝方法&#xff1a;打開 IDEA&#xff0c;進入 File -> Settings -> Plugins&#xff0c;輸入 mybat…

三維控件中定位一個點_vtkPointWidget

開發環境&#xff1a; Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example參考代碼 demo解決問題&#xff1a;允許用戶使用三維光標在三維空間中定位一個點。關鍵類vtkPointWidget , 光標具有輪廓邊界框、軸對齊十字準線和軸陰影&#xff…

AD7021C 觸摸感應加燈光調節芯片IC 可用于觸摸臺燈、觸摸玩具燈等

AD7021C觸摸感應 IC 是為實現人體觸摸界面而設計的集成電路。可替代機械式輕觸按鍵&#xff0c;實現防水防塵、密封隔離、堅固美觀的操作界面。使用該芯片可以實現 LED 燈光亮度調節&#xff0c;方案所需的外圍電路簡單&#xff0c;操作方便。確定好靈敏度選擇電容&#xff…

【華為OD題庫-033】經典屏保-java

題目 DVD機在視頻輸出時&#xff0c;為了保護電視顯像管&#xff0c;在待機狀態會顯示"屏保動畫”&#xff0c;如下圖所示,DVD Logo在屏幕內來回運動&#xff0c;碰到邊緣會反彈:請根據如下要求&#xff0c;實現屏保Logo坐標的計算算法 1、屏幕是一個800 * 600像素的矩形&…

Vue3 provide 和 inject 實現祖組件和后代組件通信

provide 和 inject 能夠實現祖組件和其任意的后代組件之間通信&#xff1a; 一、provide 提供數據 我們在祖組件中使用provide 將數據提供出去。 使用provide 之前需要先進行引入&#xff1a; import { provide } from "vue"; 語法格式如下&#xff1a; provide(&q…

objectarx + libcurl下載文件遇到的問題

下載失敗導致cad崩潰,報錯’Error handler re-entered.Exiting now ,原因是因為我將libcurl相關的功能繼承到一個類中,在類中進行相關的webapi交互,但是由于最開始進行了請求所以沒有將curl進行初始化導致的傳遞數據錯誤.只需要在函數開始時進行初始化即可. curl curl_easy_i…

山西電力市場日前價格預測【2023-11-23】

日前價格預測 預測說明&#xff1a; 如上圖所示&#xff0c;預測明日&#xff08;2023-11-23&#xff09;山西電力市場全天平均日前電價為148.77元/MWh。其中&#xff0c;最高日前電價為420.40元/MWh&#xff0c;預計出現在18:00。最低日前電價為0.00元/MWh&#xff0c;預計出…

微信小程序開發學習——頁面布局、初始導航欄與跳轉

1.盒模型 要求實現效果如圖所示&#xff1a; 所有WXML元素都可以看作盒子&#xff0c;在WXSS中"box model”這一術語是用來設計和布局時使用盒模型本質上是一個盒子&#xff0c;封裝周圍的WXML元素它包括: 邊距&#xff0c;邊框&#xff0c;填充和實際內容&#xff0c;模…

【Java并發編程十一】同步控制三

LockSupport 線程阻塞工具 LockSupport的unpark() 方法可以先執行。 import java.util.ArrayList; import java.util.Random; import java.util.concurrent.*; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.LockSupport; import java.uti…

RAW RGB YUV數據差異

目錄 顏色與色彩空間 RAW圖像 RGB圖像 YUV圖像 顏色與色彩空間 顏色 顏色是人眼感知到的現象&#xff0c;它是由光波的頻率和強度所決定的&#xff0c;僅僅存在于人的眼睛和大腦中&#xff0c;因此為了方便描述顏色&#xff0c;引入了色彩空間。色彩空間 色彩空間&#xff…

C語言--數組與指針--打印字符串的n種方式

一.知識背景 一維數組名的含義 arr一般表示數組的起始地址&#xff08;除了兩種例外&#xff09; 1.在定義數組的同一個函數中(不是形參),求sizeof(arr),求整個數組的字節數 2.在定義數組的同一個函數中(不是形參),&arr1,加整個數組的大小 (經常考試) 3.除上面以外,arr都表…