您現在的位置是:首頁 > 遊戲

Zookeeper命名服務

由 Java比海盜 發表于 遊戲2022-04-25
簡介命名服務之統一的資源定位獲取我利用zookeeper的註冊中心功能,將我的zero服務註冊到zookeeper,預設的服務註冊中心根路徑是services,zero是我的服務名稱,zero子節點是具體的例項,這個例項節點上儲存的是具體的服

序列號生成器怎麼用

前言

命名服務,簡單來說就是對某一資源命名,使其可以透過路徑名稱對資源唯一定位,zookeeper節點具有唯一性,可以保證ZNode在分散式系統中唯一。

應用方向

1。提供類似JNDI的功能

利用zookeeper中的樹形分層結構,可以把系統中的各種服務的名稱,地址以及目錄資訊存放在zookeeper中,需要的時候去zookeeper中去讀取。

2。利用zookeeper中的順序節點的特性,製作分散式的序列號生成器(ID生成器)

在往資料庫中插入資料,通常是要有一個ID號,在單機環境下,可以利用資料庫的主鍵自動生成id號,但是這種在分散式環境下就無法使用了,可以使用UUID,但是UUID有一個缺點,就是沒有什麼規律很難理解。使用zookeeper的命名服務可以生成有順序的容易理解的,支援分散式的編號。

例子

1。命名服務之統一的資源定位獲取

我利用zookeeper的註冊中心功能,將我的zero服務註冊到zookeeper,預設的服務註冊中心根路徑是/services,zero是我的服務名稱,zero子節點是具體的例項,這個例項節點上儲存的是具體的服務資料,如下圖所示,只要約定好路徑,可以在任何服務下獲取到這個路徑資源的資訊。

Zookeeper命名服務

Talk is cheap,show me the code。。。

Zookeeper命名服務

控制檯輸出,就獲取到了這個資源的資料資訊:

Zookeeper命名服務

2。命名服務之分散式的序列號生成器

直接上程式碼:

Zookeeper命名服務

結果:

Zookeeper命名服務

推薦文章