您好,登錄后才能下訂單哦!
這篇文章主要介紹“Docker容器中的ZooKeeper不響應四字命令的解決方法”,在日常操作中,相信很多人在Docker容器中的ZooKeeper不響應四字命令的解決方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Docker容器中的ZooKeeper不響應四字命令的解決方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
四字命令其實就是通過類似 echo stat | nc 127.0.0.1 2181
這樣的指令,來與zk節點交互,獲取或者設置數據的指令
zk四字命令列表:
命令 | 示范 | 解釋 |
---|---|---|
conf | echo conf | nc 127.0.0.1 2181 | 輸出相關服務配置的詳細信息。比如端口、zk數據及日志配置路徑、最大連接數,session超時時間、serverId等 |
cons | echo cons | nc 127.0.0.1 2181 | 列出所有連接到這臺服務器的客戶端連接/會話的詳細信息 包括“接受/發送”的包數量、session id 、操作延遲、最后的操作執行等信息 |
crst | echo crst | nc 127.0.0.1 2181 | 重置當前這臺服務器所有連接/會話的統計信息 |
dump | echo dump | nc 127.0.0.1 2181 | 列出未經處理的會話和臨時節點(只在leader上有效) |
envi | echo envi | nc 127.0.0.1 2181 | 輸出關于服務器的環境詳細信息(不同于conf命令),比如host.name、java.version、java.home、user.dir=/data/zookeeper-3.4.6/bin之類信息 |
ruok | echo ruok | nc 127.0.0.1 2181 | 測試服務是否處于正確運行狀態。如果正常返回"imok",否則返回空 |
srst | echo srst | nc 127.0.0.1 2181 | 重置服務器的統計信息 |
srvr | echo srvr | nc 127.0.0.1 2181 | (New in 3.3.0)輸出服務器的詳細信息。zk版本、接收/發送包數量、連接數、模式(leader/follower)、節點總數 |
stat | echo stat | nc 127.0.0.1 2181 | 輸出服務器的詳細信息:接收/發送包數量、連接數、模式(leader/follower)、節點總數、延遲。 所有客戶端的列表 |
wchs | echo wchs | nc 127.0.0.1 2181 | 列出服務器watches的簡潔信息:連接總數、watching節點總數和watches總數 |
wchc | echo wchc | nc 127.0.0.1 2181 | 通過session分組,列出watch的所有節點,它的輸出是一個與 watch 相關的會話的節點列表。如果watches數量很大的話,將會產生很大的開銷,會影響性能,小心使用 |
wchp | echo wchp | nc 127.0.0.1 2181 | 通過路徑分組,列出所有的 watch 的session id信息。它輸出一個與 session 相關的路徑。如果watches數量很大的話,將會產生很大的開銷,會影響性能,小心使用 |
mntr | echo mntr | nc 127.0.0.1 2181 | 列出集群的健康狀態。包括“接受/發送”的包數量、操作延遲、當前服務模式(leader/follower)、節點總數、watch總數、臨時節點總數 |
隨著ZooKeeper的官方Docker鏡像推出,大家也都紛紛按照官方介紹的那樣,用Docker來運行ZooKeeper,開始用著很爽,直到有人發現四字命令出問題:“輸了命令沒有響應”
百度谷歌各家論壇也沒有找到解決辦法,直到認真翻了一遍ZooKeeper的官方文檔:zookeeper-doc
才發現,使用Docker鏡像啟動的ZK容器,默認是沒有配置四字命令白名單列表的,說白了,你只有在這個docker容器內部才能使用四字命令,而到了宿主機上,則會被禁止掉,所以就會出現無響應這種問題
那么解決辦法也很簡單,我們可以利用volumes指令,在宿主機上配置好zk鏡像,再映射到容器中來啟動zk即可解決
具體操作辦法:
編寫配置文件zoo.cfg,并保存在./config目錄下,內容如下所示:
dataDir=/data dataLogDir=/datalog tickTime=2000 initLimit=5 syncLimit=2 autopurge.snapRetainCount=3 autopurge.purgeInterval=0 maxClientCnxns=60 standaloneEnabled=true admin.enableServer=true server.1=localhost:2888:3888;2181 4lw.commands.whitelist=*
編寫docker-compose,配置volumes,添加以下內容:
volumes: - ./config:/conf
啟動測試,解決
到此,關于“Docker容器中的ZooKeeper不響應四字命令的解決方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。