Zookeeper 六 監聽伺服器節點動態上下線

2021-10-02 16:42:31 字數 1470 閱讀 8216

某分布式系統中,主節點可以有多台,可以動態上下線,任意一台客戶端能實時感知到主節點伺服器上下線的變化

伺服器端啟動時去註冊資訊【建立的都是臨時節點】

客戶端啟動就getchildren(),獲取到當前伺服器列表,並且註冊監聽

當某一伺服器下線時,zookeeper集群中該伺服器對應的節點消失

伺服器節點上下線事件通知,告知註冊監聽者

註冊監聽者採取相應措施,執行process()程序【重新獲取伺服器列表,並且註冊監聽】

bin/zkserver.sh start

bin/zkcli.sh

create /servers "servers"
public class distributeserver 

private void business() throws interruptedexception

private void regist(string hostname) throws keeperexception, interruptedexception

private string connectstring = "192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181";

private int sessiontimeout = 2000;

private zookeeper zkclient;

private void getconnect() throws ioexception

});}}

帶序號【-s】的臨時【-e】節點

public class distributeclient 

private void business() throws interruptedexception

private void getchildren() throws keeperexception, interruptedexception

system.out.println(hosts);

} private string connectstring = "192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181";

private int sessiontimeout = 2000;

private zookeeper zkclient;

private void getconnect() throws ioexception catch (keeperexception e) catch (interruptedexception e)

}});

}}

zooKeeper伺服器角色

zookeeper伺服器角色 leader 事務請求的唯一排程和處理者,保證集群事務處理的順序性 集群內部各伺服器的排程者 follower 處理客戶端非事務請求,事務請求給leader伺服器 參與事務請求proposal的投票 參與leader選舉投票 observer 處理客戶端非事務請求,事務...

伺服器監聽客戶

伺服器端 private void button1 click object sender,eventargs e chatsocket.close acceptedsocket.close catch argumentnullexception es catch socketexception e...

linux伺服器安裝zookeeper

二 解壓安裝包 三 四.修改zoo.cfg配置檔案 vim zoo.cfg 五.在安裝包根目錄下建立data和log存放zk的資料以及日誌的 六.設定環境變數 etc profile 七 重置配置 source etc profile 八 啟動zookeeper sh zkserver.sh sta...