一、说明
为什么要搭建dubbo-admin管理平台:因为作为dubbo注册中心的zookeeper只是一个黑框,我们无法看到是否存在了什么提供者或消费者,这时就要借助Dubbo-Admin管理平台来实时的查看,也可以通过这个平台来管理提者和消费者。
二. 获取dubbo-admin war包
网上下载现成的war包,发布上去服务启动都报错,是因为系统的JDK和编译dubbo-admin.war的JDK版本不同导致的。所以需要下载dubbo的源代码,然后使用准备使用版本的JDK自己编译了一个war包,这样就不会存在启动报错的问题了。
1、自己打war包
从dubbo2.6.1开始,dubbo-admin、dubbo-monitor被单独拆分出来了,项目为incubator-dubbo-ops,GitHub地址:https://github.com/apache/incubator-dubbo-ops
1.1 老版本安装
1.1.1 环境准备
maven:3.6.1
jdk:1.8.0_144
dubbo:2.6.0
tomcat:apache-tomcat-8.5.51
1.1.2 下载dubbo源码
1、网址:https://github.com/apache/dubbo
下载对应版本的dubbo源码,我下载的是:2.6.0版本(一开始想编译2.5.3来着,可是下载后编译打包时发现一些依赖的资源已经取消了,导致无法下载、编译)
2、下载后解压
3、解压后的文件内容,这里你其它的都不用去管,只管dubbo-admin.
因为这里只需要编译Dubbo-Admin,所以打开cmd,然后进入解压路径 ,有人把整个工程都编译了,其实没有必要,只需要编译dubbo-admin即可,有什么依赖的,maven会自动帮你解决。整个过程如下:
首先,通过cmd进入目录,输入命令:
mvn package -Dmaven.skip.test=true
这里要自己把maven的环境变量配置好,这里的-Dmaven.skip.test表示不打包测试包。然后结果如下,表示打包成功:
再打开项目的文件所在位置,target表示构建的本地路径,打开,里面有个文件dubbo-admin-2.6.0.war表示打包成功。
1.2 新版本安装
https://blog.csdn.net/u012988901/article/details/84647763
XXX
2、下载我自己打好的war包
2.6.0下载地址:链接:https://pan.baidu.com/s/10ZkfRe5Xw6Zb-RQnHwrFkw 提取码:pkc8
XXX
三、部署到tomcat
1. 安装
将 dubbo-admin-x.x.x.war 拷入 tomcat的webapps中
2.配置(可以不修改)
有人说zk会使用8080端口(目前没遇到冲突):修改tomcat的端口8088,修改方法如下,打到conf下的文件 server.xml,因为zookeeper会用到8080的端口,所以为了不冲突,把Tomcat的端口改一下
四、运行tomcat
启动tomcat解压war包,然后再关闭tomcat
配置在dubbo-admin-X.X.X\WEB-INF下修改dubbo.properties,默认地址为本机
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
再启动tomcat,问地址:http://localhost:8080/dubbo-admin-2.6.0
登陆用户名和密码都是root,出现下面的界面表示搭建成功。(记得先启动zk)
五、遇到问题
问题一
有的JDK1.8的同学可能出现:Bean property ‘URIType’ is not writable or has an invalid错误,与dubbo-admin 存在兼容性问题,需要修改 tomcat 默认的 jdk到 1.7。
如果启动tomcat时报错: Bean property 'URIType' is not writable or has an invalid 解决方法:
因为 jdk 是1.8的版本,和 dubbo-admin 存在兼容性问题。所以报错:
Bean property 'URIType' is not writable or has an invalid
参见:https://github.com/alibaba/dubbo/issues/50
解决方法,修改 tomcat 默认的 jdk到 1.7 :
1) 修改bin文件夹下面的catalina.bat文件,把如下内容
rem ----- Execute The Requested Command ----------------------------------
echo Using CATALINA_BASE: %CATALINA_BASE%
echo Using CATALINA_HOME: %CATALINA_HOME%
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
echo Using JAVA_HOME: %JAVA_HOME%
修改为:
echo Using CATALINA_BASE: %CATALINA_BASE%
echo Using CATALINA_HOME: %CATALINA_HOME%
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
echo Using JAVA_HOME: D:\Java\jdk1.7.0_79
2) 修改bin文件夹下面的setclasspath.bat文件,把如下内容:
rem Set standard command for invoking Java.
rem Note that NT requires a window name argument when using start.
rem Also note the quoting as JAVA_HOME may contain spaces.
set _RUNJAVA="%JAVA_HOME%\bin\java"
set _RUNJAVAW="%JAVA_HOME%\bin\javaw"
set _RUNJDB="%JAVA_HOME%\bin\jdb"
set _RUNJAVAC="%JAVA_HOME%\bin\javac"
修改为:
rem Set standard command for invoking Java.
rem Note that NT requires a window name argument when using start.
rem Also note the quoting as JAVA_HOME may contain spaces.
set _RUNJAVA="D:\Java\jdk1.7.0_79\bin\java.exe"
set _RUNJDB="D:\Java\jdk1.7.0_79\bin\jdb.exe"
然后在使用 startup.bat 启动成功:当然还有其他解决方法。参见 https://github.com/alibaba/dubbo/issues/50