zookeeper使用場景以及配置管理

2021-08-20 21:47:57 字數 1997 閱讀 9111

zookeeper特點:

節點可以儲存資料

可以watch節點,觸發相關

使用場景1:配置管理

這裡是資料庫配置,當我們應用服務修改配置的時候,只需要修改配置中心,發布,那麼應用就會自動監聽資料庫配置的改動,然後重新讀取配置,連線資料庫,省去了修改每台業務伺服器的複雜度。

使用場景2:分布式鎖

下圖就是乙個分布式鎖的實現,當第乙個連線獲取通過zk獲取第乙個節點鎖後,下乙個節點watch這個節點,當前節點被刪除後,釋放鎖,下乙個連線建立節點,獲得鎖資源。相當於乙個佇列,等待上乙個鎖釋放後,下乙個才可以操作。

回歸初心,hdfs的ha實現

首先journal nodes進行控制資料的同步,zkfailover controller控制nn,和zk,zk負責選舉master。

例項:四個節點全部安裝zk

192-168-100-142

192-168-100-217

192-168-100-225

192-168-100-34

wget

解壓並且配置

建立相關路徑

mkdir -p /opt/hadoop/zookeeper/log

mkdir -p /opt/hadoop/zookeeper/data

修改配置

cd /usr/local/zookeeper-3.4.10/conf/

cp zoo_sample.cfg zoo.cfg  

vi zoo.cfg 填寫如下配置:

datadir=/opt/hadoop/zookeeper/data

datalogdir=/opt/hadoop/zookeeper/log

server.0=192-168-100-142:8880:7770

server.1=192-168-100-217:8881:7771

server.2=192-168-100-225:8882:7772

server.3=192-168-100-34:8883:7773

在每乙個節點新增myid檔案,與上面的配置server.*一一對應

192-168-100-142

vim /opt/hadoop/zookeeper/data/myid

寫入0192-168-100-217

寫入1192-168-100-225

寫入2192-168-100-34

寫入3全部配置文成後,分別在每個節點啟動zk

zkserver.sh start

啟動後可以通過zkserver.sh status檢視狀態

這裡可以看到192-168-100-142 是leader,其他均為follower

[root@192-168-100-142 data]# zkserver.sh status

zookeeper jmx enabled by default

using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg

mode: leader

[root@192-168-100-217 data]# zkserver.sh status

zookeeper jmx enabled by default

using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg

mode: follower

zookeeper 使用場景

比如像dubbo就是用的zookeeper的命名服務,利用的是樹形的目錄結構可以統一對配置進行動態的調整,利用的是節點變更的監聽可以在多個機器中選出leader,利用的是臨時順序編號目錄節點 ephemeral sequential 在集群重需要某個操作保持一致性和時序性的時候,利用建立節點來做獨佔...

Zookeeper使用場景

分布式系統的執行是很複雜的,因為涉及到了網路通訊還有節點失效等不可控的情況。下面介紹在最傳統的master workers模型,主要可以會遇到什麼問題,傳統方法是怎麼解決以及怎麼用zookeeper解決。master節點管理 集群當中最重要的是master,所以一般都會設定一台master的back...

ZooKeeper典型使用場景

zookeeper是乙個高可用的分布式資料管理與系統協調框架。基於對paxos演算法的實現,使該框架保證了分布式環境中資料的強一致性,也正是 基於這樣的特性,使得zookeeper能夠應用於很多場景。網上對zk的使用場景也有不少介紹,本文將結合作者身邊的專案例子,系統的對zk的使用場景 進行歸類介紹...