Dubbo剖析-管理控制台的搭建与使用
一、前言
开源的Dubbo的服务管理控制台是阿里巴巴内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。
二、管理控制台的搭建
2.1 打包生成管理控制台war包
- 下载源码
在 https://github.com/alibaba/dubbo/tree/2.5.x 下载dubbo的源码 - 解压源码,进入dubbo-2.5.x 目录,内容如下:
在该目录执行mvn clean package 会生成如下结果:
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] dubbo-parent ...................................... SUCCESS [2.857s]
[INFO] Hessian Lite(Alibaba embed version) ............... SUCCESS [6.518s]
[INFO] dubbo-common ...................................... SUCCESS [7.706s]
[INFO] dubbo-container ................................... SUCCESS [0.057s]
[INFO] dubbo-container-api ............................... SUCCESS [3.398s]
[INFO] dubbo-container-spring ............................ SUCCESS [1.099s]
[INFO] dubbo-container-jetty ............................. SUCCESS [1.164s]
[INFO] dubbo-container-log4j ............................. SUCCESS [1.196s]
[INFO] dubbo-container-logback ........................... SUCCESS [1.138s]
[INFO] dubbo-remoting .................................... SUCCESS [0.045s]
[INFO] dubbo-remoting-api ................................ SUCCESS [3.615s]
[INFO] dubbo-remoting-netty .............................. SUCCESS [1.959s]
[INFO] dubbo-remoting-mina ............................... SUCCESS [1.602s]
[INFO] dubbo-remoting-grizzly ............................ SUCCESS [1.752s]
[INFO] dubbo-remoting-p2p ................................ SUCCESS [2.148s]
[INFO] dubbo-remoting-http ............................... SUCCESS [2.154s]
[INFO] dubbo-remoting-zookeeper .......................... SUCCESS [2.165s]
[INFO] dubbo-remoting-netty4 ............................. SUCCESS [2.721s]
[INFO] dubbo-rpc ......................................... SUCCESS [0.060s]
[INFO] dubbo-rpc-api ..................................... SUCCESS [3.397s]
[INFO] dubbo-rpc-default ................................. SUCCESS [3.278s]
[INFO] dubbo-rpc-injvm ................................... SUCCESS [1.706s]
[INFO] dubbo-rpc-rmi ..................................... SUCCESS [1.373s]
[INFO] dubbo-rpc-hessian ................................. SUCCESS [1.791s]
[INFO] dubbo-rpc-http .................................... SUCCESS [1.210s]
[INFO] dubbo-rpc-webservice .............................. SUCCESS [1.816s]
[INFO] dubbo-cluster ..................................... SUCCESS [2.690s]
[INFO] dubbo-registry .................................... SUCCESS [0.033s]
[INFO] dubbo-registry-api ................................ SUCCESS [2.548s]
[INFO] dubbo-monitor ..................................... SUCCESS [0.020s]
[INFO] dubbo-monitor-api ................................. SUCCESS [1.309s]
[INFO] dubbo-filter ...................................... SUCCESS [0.023s]
[INFO] dubbo-filter-validation ........................... SUCCESS [1.474s]
[INFO] dubbo-filter-cache ................................ SUCCESS [1.395s]
[INFO] dubbo-registry-default ............................ SUCCESS [1.402s]
[INFO] dubbo-monitor-default ............................. SUCCESS [1.258s]
[INFO] dubbo-registry-multicast .......................... SUCCESS [1.336s]
[INFO] dubbo-config ...................................... SUCCESS [0.018s]
[INFO] dubbo-config-api .................................. SUCCESS [3.498s]
[INFO] dubbo-config-spring ............................... SUCCESS [3.326s]
[INFO] dubbo-rpc-thrift .................................. SUCCESS [2.115s]
[INFO] dubbo-rpc-memcached ............................... SUCCESS [1.476s]
[INFO] dubbo-rpc-redis ................................... SUCCESS [1.367s]
[INFO] dubbo-registry-zookeeper .......................... SUCCESS [1.597s]
[INFO] dubbo-registry-redis .............................. SUCCESS [2.111s]
[INFO] dubbo-plugin ...................................... SUCCESS [0.027s]
[INFO] dubbo-qos ......................................... SUCCESS [2.574s]
[INFO] dubbo ............................................. SUCCESS [2.662s]
[INFO] dubbo-simple ...................................... SUCCESS [0.017s]
[INFO] dubbo-registry-simple ............................. SUCCESS [5.246s]
[INFO] dubbo-monitor-simple .............................. SUCCESS [11.301s]
[INFO] dubbo-admin ....................................... SUCCESS [11.472s]
[INFO] dubbo-demo ........................................ SUCCESS [0.034s]
[INFO] dubbo-demo-api .................................... SUCCESS [1.097s]
[INFO] dubbo-demo-provider ............................... SUCCESS [1.892s]
[INFO] dubbo-demo-consumer ............................... SUCCESS [1.473s]
[INFO] dubbo-test ........................................ SUCCESS [0.022s]
[INFO] dubbo-test-benchmark .............................. SUCCESS [5.324s]
[INFO] dubbo-test-compatibility .......................... SUCCESS [0.017s]
[INFO] dubbo-test-spring3 ................................ SUCCESS [1.719s]
[INFO] dubbo-test-integration ............................ SUCCESS [0.149s]
[INFO] dubbo-test-examples ............................... SUCCESS [3.413s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2:16.562s
[INFO] Finished at: Wed Mar 14 17:19:06 CST 2018
[INFO] Final Memory: 38M/654M
[INFO] ------------------------------------------------------------------------
进入/Users/zhuizhumengxiang/Downloads/dubbo-2.5.x/dubbo-admin/target目录,会发现生成了dubbo-admin-2.5.10.war:
image.png
- 拷贝dubbo-admin-2.5.10.war到servlet容器
本文使用tomcat容器,可以在 https://tomcat.apache.org/ 这里下载二进制包
然后拷贝dubbo-admin-2.5.10.war到apache-tomcat-7.0.10/webapps目录下并解压:
image.png
然后进入dubbo-admin-2.5.10/WEB-INF目录修改dubbo.properties文件:
image.png
这里只需要修改注册中心的地址即可,这里设置为zk的地址。
- 启动tomcat
在apache-tomcat-7.0.10/bin 下执行sh catalina.sh run启动tomcat.
启动后访问 http://127.0.0.1:8080/dubbo-admin-2.5.10/ 会出现下面界面:
image.png
用户名和密码输入root,进入下面界面:
image.png
说明管理控制台搭建完毕了。
三、管理控制台运维
3.1 搜索页面
当你需要管理 Dubbo 的服务时,首先要搜索到这个服务,然后打开它的管理页面,比如搜索:dubbo/com.test.UserServiceBo:1.0.0
image.png
单击右侧搜索按钮进入下面界面:
image.png
3.2 服务提供者页面
image.png3.3 服务消费者页面
image.png3.4 服务应用页面
image.png四、总结
管理控制台不是使用dubbo搭建分布式系统必须的,但是有了他我们可以对服务进行很好的治理和监控。
欢迎大家加入知识星球,在知识星球里面我们会深入讨论Java并发编程,以及JUC包源码;Java类加载器原理;Spring,Springboot,Tomcat,Dubbo等开源框架的使用以及源码剖析;分享作者从毕业到现在一路走来的学习经验,如何高效学习,如何阅读源码;讨论职业面试时候会经常遇到的问题以及如何作答,读者可以识别下面二维码加入:
image