无论是做dubbo的单机服务治理还是集群治理,安装dubbo-admin管理控制平台是必须的。
1.但市面上大多教学比较年代久远,或者不清不楚,例如市面上大多的推荐的dubbo源码地址并没有dubbo-admin子项目(或叙许是新版该名称了,但笔者翻了好久,没找到像dubbo-admin的子项目),一度想花积分买个别人的打包好的war包,但忍住了,不过后来的教训证明,你就算下载了别人的war包也有可能不能用,除非你linux上一直用jdk6或者更低(所以,千万不要下载别人的war包,因为那样不确保他打包之前的适应jdk版本是多少,万一是低版本就恶心了,那时你还得下载源码)多番周折,还是有人给的地址里有这个子项目如下https://github.com/dangdangdotcom/dubbox
截图如下
2.下载好之后就该打包源码了,这源码的结构是分模块的搭建方式,好多人不知道怎么打包,因为它的pom并不是集中的,笔者采用打包所有项目,然后找我们需要的子项目也就是dubbo-admin的war包的方式(笔者能力有限,这种方式简单点)。但是笔者一开始直接打包,然后在本地window的tomcat上跑能跑起来,但是在linux上就跑不起来,报错初始化失败,多番研究查阅,发现是这个源码的多个依赖需要的版本太低,我们2018年早已经没人用那些版本了,修改依赖如下:
2.1为了确保我们更新后的jar包依赖能确实打包进入lib依赖加载进去,我们把源码拉进eclipse进行修改,导入时注意用如下方式导入,导入后可以发现如下这么多项目。
2.2仔细找就会发现这么多子项目有一个父类,如下
在dubbo-admin的pom里修改dubbo的依赖成这样以排除旧版本spring
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>${project.parent.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
</dependency>
继续在dubbo-admin添加如下,如果发现版本一行变黄,则删除其父pom的如下同名配置,然后确保父类中没有如下配置
<dependency>
<groupId>com.alibaba.citrus</groupId>
<artifactId>citrus-webx-all</artifactId>
<version>3.1.6</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
webx已有spring3以上的依赖,因此注释掉dubbo-admin里面的spring依赖,如果在dubbo-admin里找不带如下依赖,则不用加
<!--<dependency>-->
<!--<groupId>org.springframework</groupId>-->
<!--<artifactId>spring</artifactId>-->
<!--</dependency>-->
都改好之后点击父项目maven updade 以加载新jar包依赖,完了之后打开本地dubbo-admin子项目的本地目录的target\dubbo-admin-2.8.4\WEB-INF\lib目录,查看
citrus-webx-all依赖版本是否是3.1.6.如果是则修改完毕
3.进入如下主目录
3.1进入cmd,进入你的此目录,然后输入mvn install -Dmaven.test.skip=true命令等待,耐心等待,时间较长,出现success则成功,
4.进入dubbo-admin的target目录找到war包,此刻便得到了我们想要的,该名称为dubbo.war 方便输入
5.确保你linux上jdk安装的是1.8系列(以上不支持,以下不方便你自己的其他程序)
6.确保linux上java环境变量配好,java -version测试成功则配好了,
7.把war包扔进webapps后如果自动解压则进入WEB-INF下的dubbo.properties修改如下:
填上你自己的服务器ip
8.确保你linux开放端口2182,不行就关闭防火墙
service iptables stop 关闭防火墙
/bin/systemctl status/start/stop firewalld centos7以上关闭防火墙
9.开启tomcat之前确保dubbo服务开启,开启方法自行百度,网上方法基本对
10.修改tomcat的端口,因为dubbo或占用8080,必须把tomcat修改成其他
11在确保你开启了dubbo服务,防火墙也没问题了,安全组也有这些特定端口开放,然后重启tomcat,因为tomcat大都没法一次性关闭,用如下代码重启tomcat
ps -ef | grep tomcat 查看tomcat进程
kill -9 4474545 杀死进程
./startup.sh 启动tomcat(要先进入bin)
然后就可以用了,