如下图所示,在安装完成之后,发现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模式)。