如下圖所示,在安裝完成之后,發現zk(zookeeper)部署情況為空。
注:承接上篇,環境未發生改變。
1.解決zk沒有啟動的問題
查看disconf日志,發現zk沒有啟動。
實際情況是:zk已經啟動,可以使用zkServer.sh status命令進行查看。
那么問題就明確了,disconf沒有關聯上zk。
經過排查,發現在disconf部署目錄之下,有一個zk的jar,且版本號和實際使用的版本號不一致。因此,zk才沒法連接到disconf,導致最終的zk部署情況為空。
解決辦法比較簡單:讓這個zk的jar和實際使用的zk版本保持一致就OK了。
詳細步驟如下:
①在POM.xml中重新改動zk依賴的版本號(改為實際使用的zk版本),重新編譯。
②將disconf-web部署目錄下的zoo.properties中的hosts改為要啟動的zk的client端口號,本機為127.0.0.1:2181。【重要】
經過上述步驟,重新啟動zk,發現disconf日志中顯示zk已經能夠正確連接。
2.沒有應用實際部署導致的zk部署情況為空
zk雖然能夠正確啟動,但zk部署情況還是為空。這是因為沒有應用部署到容器中,zk監聽不到應用部署的情況,因此zk部署情況為空是正常的。
解決步驟如下:
①從github上下載disconf客戶端demo,網址為:https://github.com/knightliao/disconf-demos-java 。
②修改disconf-standalone-demo的配置文件disconf.properties中的disconf.conf_server_host選項改為nginx監聽的端口,本機為127.0.0.1:8888。【重要】
③按照github介紹的方法編譯運行disconf-standalone-demo 。
此時就會看到zk部署情況不再為空(zookeeper為standalone模式)。