ZooKeeper 是一個分布式應(yīng)用協(xié)調(diào)服務(wù),分布式應(yīng)用程序可以基于 ZooKeeper 實現(xiàn)諸如數(shù)據(jù)發(fā)布/訂閱、負載均衡、命名服務(wù)、分布式協(xié)調(diào)/通知、集群管理、Master 選舉、分布式鎖和分布式隊列等功能。
zookeeper組件只有一個服務(wù)名字Server,安裝在多個節(jié)點組成集群使用(一般建議3或5個),zookeeper是一個java進程,使用jps命令可以快速找出zk的進程id。一般名為QuorumPeerMain。如果主機跑了多個zk,這里也會顯示多個QuorumPeerMain(但官方建議最好不要出現(xiàn)跑多個zk實例合用一個磁盤的情況,容易出現(xiàn)IO問題)
使用ps -ef命令或find查看當前服務(wù)器中存在的zk實例節(jié)點目錄,再通過dir/logs中最后一條log的最近時間來判斷此zk是不是當前正在運行的。最后通過查看conf/zoo.cfg的配置信息,查看此zk集群的規(guī)模(幾個節(jié)點)、客戶端端口等信息來判斷出問題的是否是此zk集群。
在zookeeper默認配置文件zoo.cfg(可以修改文件名)中有一個配置項dataDir,該配置項用于配置zookeeper快照日志和事務(wù)日志的存儲地址。在官方提供的默認參考配置文件zoo_sample.cfg中,只有dataDir配置項。其實在實際應(yīng)用中,還可以為事務(wù)日志專門配置存儲地址,配置項名稱為dataLogDir,在zoo_sample.cfg中并未體現(xiàn)出來。在沒有dataLogDir配置項的時候,zookeeper默認將事務(wù)日志文件和快照日志文件都存儲在dataDir對應(yīng)的目錄下。建議將事務(wù)日志(dataLogDir)與快照日志(dataLog)多帶帶配置,因為當zookeeper集群進行頻繁的數(shù)據(jù)讀寫操作,會產(chǎn)生大量的事務(wù)日志信息,將兩類日志分開存儲會提高系統(tǒng)性能,而且,可以允許將兩類日志存在在不同的存儲介質(zhì)上,減少磁盤壓力。log4j用于記錄zookeeper集群服務(wù)器運行日志,該日志的配置地址在conf/目錄下的log4j.properties文件中,該文件中有一個配置項為“zookeeper.log.dir=.錯誤! 超鏈接引用無效?!?/span> 時,在該文件夾下會產(chǎn)生zookeeper.out日志文件。下面主要介紹事務(wù)日志與快照日志。
事務(wù)日志:
zookeeper的數(shù)據(jù)在內(nèi)存中是以樹形結(jié)構(gòu)進行存儲的,而快照就是每隔一段時間就會把整個DataTree的數(shù)據(jù)序列化后存儲在磁盤中,這就是zookeeper的快照文件。
zookeeper快照日志的存儲路徑同樣可以在zoo.cfg中查看,如上文截圖所示。訪問dataDir路徑可以看到version-2文件夾:
從截圖中可以看出,zookeeper快照文件的命名規(guī)則為snapshot.**,其中**表示zookeeper觸發(fā)快照的那個瞬間,提交的最后一個事務(wù)的ID。
log4j日志,服務(wù)的運行日志。
Clientport:客戶端連接端口
Ticktime:心跳時間(zk時間的基本單位,單位毫秒)
initLimit:zk啟動的初始化時間,本例10表示10*Ticktime=4000毫秒
syncLimit:zk進行sync同步的時間
maxClientCnxns:最大客戶端連接數(shù),0表示無顯示(此參數(shù)值為IP級別,默認60)
dataDir:zk快照數(shù)據(jù)目錄
dataLogDir:zk操作記錄數(shù)據(jù)目錄
Autopurge.* :表示快照及日志的保留策略,本例24小時和500個。
snapCount:表示進行多少次update操作,進行一次快照,默認是100000
服務(wù)操作命令:
一旦確認集群服務(wù)異常,就使用bin/zkServer.sh stop先在所有節(jié)點運行停止zk集群服務(wù)(如果leader運行正常,只重啟單個異常服務(wù)即可);
啟動完成后,使用bin/zkServer.sh status查看是否角色是否正常(一個leader,多個follower)
zkCli.sh命令
使用bin/zkCli.sh命令可以進入到zk-shell內(nèi)部進行操作,直接操作zk的文件系統(tǒng)。
注意如果zk進行了acl配置,直接zkCli.sh可能會進入失敗,此時需使用zkCli.sh -server IP:port 命令進入,ip:port為zk的服務(wù)地址和端口;
zk-shell內(nèi)部命令十分有限,合起來不到50個,常用的有
create 創(chuàng)建znode
delete 刪除節(jié)點
connect 連接其他zk節(jié)點
addauth 添加認證,通常添加用戶密碼認證用這個
setAcl 添加acl認證,通常添加ip白名單等
getAcl 查看路徑的權(quán)限情況
get 查看zk路徑中的具體值
zk的監(jiān)控主要采用自帶四字命令實現(xiàn),運行方法有多種,基礎(chǔ)方法是
echo 【四字命令】 |nc IP:port,如 echo mntr |nc localhost 2181
因服務(wù)器系統(tǒng)不同,有些可能沒有nc命令,可嘗試使用nc6、netcat等替換nc命令也可以。如以上命令都沒有又想查看,可直接使用telnet IP:port,然后在等待命令處直接輸入四字命令:(如下圖srvr即為我們輸入的四字命令)
常用四字命令有mntr、srvr、conf、cons、envi等,具體會根據(jù)zk版本不同有增減,新版支持的命令會更多。
監(jiān)控常使用mntr,運行結(jié)果可監(jiān)控以下字段:
zk_outstanding_requests指標(即zk連接排隊情況)使用監(jiān)控工具監(jiān)控文件中的值如果 >10則報警num_alive_connections存儲zk_num_alive_connections指標(即當前節(jié)點活動的連接數(shù)),使用監(jiān)控工具監(jiān)控此文件中值如果>1500則報警
max_latency存儲當前所有連接中的延遲最大的連接指標,當延遲毫秒數(shù)超過10個ticktime=20000時,進行報警
具體的監(jiān)控指標及方法一定是經(jīng)過業(yè)務(wù)的調(diào)試和反復(fù)測試后才能發(fā)揮應(yīng)有的效果的。
更多精彩干貨分享
點擊下方名片關(guān)注
IT那活兒
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/129926.html
摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報率高。馬上就十一國慶假期了,給小伙伴們分享下,從小白程序員到大廠高級技術(shù)專家我看過哪些技術(shù)類書籍。 大家好,我是...
摘要:鑒于目前大多數(shù)服務(wù)器環(huán)境都是,提前接觸能夠相輔相成。正則也是必須要掌握的一個知識點。有多種創(chuàng)建多線程的方式,不過目前使用線程池的多一些。 原創(chuàng):小姐姐味道(微信公眾號ID:xjjdog),歡迎分享,轉(zhuǎn)載請保留出處。 你可能有所感悟。零散的資料讀了很多,但是很難有提升。到處是干貨,但是并沒什么用,簡單來說就是缺乏系統(tǒng)化。另外,噪音太多,雷同的框架一大把,我不至于全都要去學(xué)了吧。 這里,我...
摘要:實戰(zhàn)高并發(fā)程序設(shè)計推薦豆瓣評分書的質(zhì)量沒的說,推薦大家好好看一下。推薦,豆瓣評分,人評價本書介紹了在編程中條極具實用價值的經(jīng)驗規(guī)則,這些經(jīng)驗規(guī)則涵蓋了大多數(shù)開發(fā)人員每天所面臨的問題的解決方案。 很早就想把JavaGuide的書單更新一下了,昨晚加今天早上花了幾個時間對之前的書單進行了分類和補充完善。雖是終極版,但一定還有很多不錯的 Java 書籍我沒有添加進去,會繼續(xù)完善下去。希望這篇...
摘要:可簡單地認為它是的擴展,負載均衡自然成為不可或缺的特性。是基于開發(fā)的服務(wù)代理組件,在使用場景中,它與和整合,打造具備服務(wù)動態(tài)更新和負載均衡能力的服務(wù)網(wǎng)關(guān)。類似的特性在項目也有體現(xiàn),它是另一種高性能代理的方案,提供服務(wù)發(fā)現(xiàn)健康和負載均衡。 摘要: Cloud Native 應(yīng)用架構(gòu)隨著云技術(shù)的發(fā)展受到業(yè)界特別重視和關(guān)注,尤其是 CNCF(Cloud Native Computing Fo...
閱讀 1493·2023-01-11 13:20
閱讀 1851·2023-01-11 13:20
閱讀 1289·2023-01-11 13:20
閱讀 2041·2023-01-11 13:20
閱讀 4242·2023-01-11 13:20
閱讀 2948·2023-01-11 13:20
閱讀 1581·2023-01-11 13:20
閱讀 3853·2023-01-11 13:20