zookeeper是乙個開源的分布式的,為分布式應用提供協調服務
的apache專案
乙個基於觀察者模式
設計的分布式服務管理框架
負責儲存和管理大家都關心的資料
,然後接受觀察者的註冊
資料發生變化,zookeeper負責通知已經在zookeeper上註冊的那些觀察者
做出相應的反應
zookeeper = 檔案系統 + 通知機制
zookeeper:乙個領導者(leader),多個跟隨者(follower)組成的集群
集群中只要有半數以上(不包括半數)節點存貨,zookeeper集群就能正常服務全域性資料一致:每個server儲存乙份相同的資料副本,client無論連線到那個server,資料都是一直的
更新請求順序進行,來自同乙個client的更新請求按其傳送順序依次進行
資料更新原子性,一次資料更新要麼成功要麼失敗
實時性,在一定時間範圍內,client能讀到最新資料
zookeeper資料模型的結構與unix檔案系統很類似
,整體上可以看做一棵樹,每個節點稱作乙個znode。每乙個znode預設能夠儲存1mb的資料,每個znode都可以通過其路徑唯一標識
統一命名服務、統一配置管理、統一集群管理、伺服器節點動態上下線、軟負載均衡等
在分布式環境下,經常需要對應用/服務進行統一命名,便於識別分布式環境下, 配置檔案同步非常常見
一般乙個集群中,所有節點的配置資訊是一致的,如kafka集群配置管理可由zookeeper實現對配置檔案修改後,希望能夠快速同步到各個幾點上
可將配置資訊寫入zookeeper上的乙個znode各個客戶端伺服器監聽這個znode
一旦znode中的資料被修改,zookeeper將通知各個客戶端伺服器
分布式環境中,實時掌控每個節點的狀態是必要的
可以根據節點實時狀態做出一些調整zookeeper可以實現實時監控節點狀態變化可以將節點資訊寫入zookeeper上的乙個znode監聽這個znode可以獲取它的實時狀態變化
在zookeeper中記錄每台伺服器的訪問數,讓訪問數最少的伺服器去處理最新的客戶端請求docker普通安裝
解壓 【tar -xzvf apache-zookeeper-3.5.5-bin.tar.gz】
進入conf,複製配置檔案【cp zoo_sample.cfg zoo.cfg
】在跟bin,conf同等目錄下,建立data目錄
授權 【 chown -r root:root ./
】編輯zoo.cfg(剛剛建立的data)
進入bin資料夾,執行啟動命令(請看基本操作)
docker run -d --name zk --restart always -p 2181:2181 -p 2182:2182 -p 2183:2183 -v /home/dockerusr/zookeeper/conf/zoo.cfg:/conf/zoo.cfg -v /home/dockerusr/zookeeper/data:/data -v /home/dockerusr/zookeeper/log:/datalog zookeeper
ticktime=2000
: zookeeper伺服器與客戶端心跳時間,2s一次(設定最小的session超時時間為兩倍心跳時間)
initlimit=10
:leader和follow初始連線時能容忍的最多心跳數,10個心跳,即最長時間102
synclimit=5
:leader和follow集群正常啟動之後通訊時間,52,如果相應超過5*2,認為follower撕掉,從列表刪除
datadie
:資料檔案目錄+資料持久化路徑,主要用於儲存資料
clientport
:客戶端連線埠大佬# 在zookeeper-3.4.14目錄下:
# 開啟服務
bin/zkserver.sh start
# 停止服務
bin/zkserver.sh stop
# 檢視狀態
bin/zkserver.sh status
# 進入客戶端
bin/zkcli.sh
Zookeeper 3 4 9 基本配置
hadoop master1 cat zookeeper conf zoo.cfg the number of milliseconds of each tick 每個心跳的時長 單位為毫秒 ticktime 2000 the number of ticks that the initial syn...
配置zookeeper日誌
zookeeper日誌預設生成的zookeeper.log檔案會在 zoocfgdir bin下,並且檔案會無限增大,時間久了會嚴重占用磁碟空間,並且一直處於增長,並沒有控制機制,所以要合理的配合zookeeper.out日誌輸出。主要修改 zoocfgdir bin zkenv.sh檔案。修改前i...
Zookeeper集群配置
啟動zookeeper的單機模式是非常簡單的,它在用作開發 測試和評估時間很方便。然而在生產環境下,為了保障服務的高可用性應該要使用集群模式。有關zookeeper的簡介和單機模式示例請參考 zookeeper簡介和入門示例 在集群模式下,所有配置檔案和單機相比是基本相同的,只有一點細微的差別。os...