zookeeper系列(七)實戰分布式命名服務

2021-09-14 04:36:09 字數 1989 閱讀 5892

zookeeper系列(一)zookeeper必知

zookeeper系列(二)實戰master選舉

zookeeper系列(三)實戰資料發布訂閱

zookeeper系列(四)實戰負載均衡

zookeeper系列(五)實戰分布式鎖

zookeeper系列(六)實戰分布式佇列

zookeeper系列(七)實戰分布式命名服務

zookeeper系列(八)zookeeper運維

zookeeper的命名服務有兩個應用方向,乙個是提供類似jndi的功能,利用zookeepeer的樹型分層結構,可以把系統中各種服務的名稱、位址以及目錄資訊存放在zookeeper,需要的時候去zookeeper中讀取。

另乙個,是利用zookeeper順序節點的特性,製作分布式的id生成器,寫過資料庫應用的朋友都知道,我們在往資料庫表中插入記錄時,通常需要為該記錄建立唯一的id,在單機環境中我們可以利用資料庫的主鍵自增功能。但在分布式環境則無法使用,有一種方式可以使用uuid,但是它的缺陷是沒有規律,很難理解。利用zookeeper順序節點的特性,我們可以生成有順序的,容易理解的,同時支援分布式環境的序列號。

public class idmaker 

public idmaker(string zkserver,string root,string nodename)

// 啟動服務

public void start() throws exception

// 停止服務

public void stop() throws exception

// 初始化服務資源

private void init()catch (zknodeexist***ception e)

}// 釋放伺服器資源

private void freeresource()catch(interruptedexception e)finally

if (client!=null)

}// 檢測當前服務是否正在執行

private void checkrunning() throws exception

// 從順序節點名中提取我們要的id值

private string extractid(string str)

return str;

}// 生成id

public string generateid(removemethod removemethod) throws exceptionelse if (removemethod.equals(removemethod.delay))

});}

//node-0000000000, node-0000000001

return extractid(ourpath);

}}

public class testidmaker 

} finally

}}

zookeeper系列(一)zookeeper必知

zookeeper系列(二)實戰master選舉

zookeeper系列(三)實戰資料發布訂閱

zookeeper系列(四)實戰負載均衡

zookeeper系列(五)實戰分布式鎖

zookeeper系列(六)實戰分布式佇列

zookeeper系列(七)實戰分布式命名服務

zookeeper系列(八)zookeeper運維

Zookeeper集群搭建實戰

環境依賴 使用centos7.5 使用如下三颱伺服器 192.168.43.128,192.168.43.129和192.168.43.130 1 zookeeper安裝 tar zxvf zookeeper 3.4.12.tar.gz c opt cd opt mv zookeeper 3.4.1...

Zookeeper系列 Leader選舉

為了徹底搞懂zk選舉leader的過程,需要在windows本地搭建乙個偽集群出來,通過實際操作,觀察集群的節點的變化。但是在實操過程中,發現windows搭建的一些坑,這記錄下。1.參考此部落格進行搭建,2.依次啟動,啟動後,無法使用zkserver.cmd status命令,無法觀察哪乙個節點是...

Zookeeper系列二 Zookeeper原理

從擴充套件性開始講起,在zk中存在的角色有leader,follower,observer。zk是讀寫分離的,所有的寫都會壓到leader上面,讀操作可以在follower上面完成。只有follower才能選擇,observer比follower級別還低。observer只是為了放大查詢能力。乙個集...