日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

「笔耕不辍」zookeeper的节点加密方式及分布式锁实现过程

發布時間:2023/12/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 「笔耕不辍」zookeeper的节点加密方式及分布式锁实现过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

zookeeper的節點加密用的方式

ZK的節點有5種操作權限:

CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、刪、改、查、管理權限,這5種權限簡寫為crwda(即:每個單詞的首字符縮寫)

注:這5種權限中,delete是指對子節點的刪除權限,其它4種權限指對自身節點的操作權限

身份的認證有4種方式:

world:默認方式,相當于全世界都能訪問

auth:代表已經認證通過的用戶(cli中可以通過addauth digest user:pwd 來添加當前上下文中的授權用戶)

digest:即用戶名:密碼這種方式認證,這也是業務系統中最常用的

ip:使用Ip地址認證

設置訪問控制:

方式一:(推薦)

1)增加一個認證用戶

addauth digest 用戶名:密碼明文

eg. addauth digest user1:password1

2)設置權限

setAcl /path auth:用戶名:密碼明文:權限

eg. setAcl /test auth:user1:password1:cdrwa

3)查看Acl設置

getAcl /path

方式二:

setAcl /path digest:用戶名:密碼密文:權限

注:這里的加密規則是SHA1加密,然后base64編碼。

分布式鎖的實現過程

當很多進程需要訪問共享資源時,我們可以通過zk來實現分布式鎖。主要步驟是:

1 .建立一個節點,假如名為:lock 。節點類型為持久節點(PERSISTENT)

2 .每當進程需要訪問共享資源時,會調用分布式鎖的lock()或tryLock()方法獲得鎖,這個時候會在第一步創建的lock節點下建立相應的順序子節點,節點類型為臨時順序節點(EPHEMERAL_SEQUENTIAL),通過組成特定的名字name+lock+順序號。

3 .在建立子節點后,對lock下面的所有以name開頭的子節點進行排序,判斷剛剛建立的子節點順序號是否是最小的節點,假如是最小節點,則獲得該鎖對資源進行訪問。

4 .假如不是該節點,就獲得該節點的上一順序節點,并給該節點是否存在注冊監聽事件。同時在這里阻塞。等待監聽事件的發生,獲得鎖控制權。

5 .當調用完共享資源后,調用unlock()方法,關閉zk,進而可以引發監聽事件,釋放該鎖。

實現的分布式鎖是嚴格的按照順序訪問的并發鎖

總結

以上是生活随笔為你收集整理的「笔耕不辍」zookeeper的节点加密方式及分布式锁实现过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。