dubbo教程-06-dubbo-admin 控制台的搭建过程

写在前面

hello 大家好欢迎大家
来到御风大世界
本次课是我们dubbo系列课程的第6课
在这次课我们将为大家演示
如何编译自己的 dubbo-admin
并且部署运行这个dubbo-admin

dubbo-admin 是用来干嘛的?

dubbo-admin 是dubbo的控制台web程序
可以利用浏览器 来 进行 dubbo的一些性能监控
服务治理 降级 分组
还有就是一些参数的设置
整个服务平台的管理功能
他是一个 dubbo 中的 子 项目
打包以后是一个 war 包
可以部署到 tomcat等容器
大概长这个样子

imagepng

我本来想去 github 下载这个源码的
不过遗憾的时候 没有找到 dubbo admin
于是我看了下issue
是不是别人也有这样的问题

imagepng

结果是这样的
现在的这个东西叫做 incubator-dubbo-ops

他是一个由Apache 维护的新的dubbo的管理软件
我们看下他的具体介绍

Dubbo控制台

前端部分

后端部分

  • 标准spring boot工程

生产环境配置

  1. 下载代码: git clone https://github.com/apache/incubator-dubbo-ops.git

  2. 在 dubbo-admin-backend/src/resources/application-production.properties中指定注册中心地址

  3. 构建

    • mvn clean package
  4. 启动 mvn --projects dubbo-admin-backend spring-boot:run

  5. 访问 http://localhost:8080


开发环境配置

  • 运行dubbo admin backend
    dubbo admin backend是一个标准的spring boot项目, 可以在任何java IDE中运行它
  • 运行dubbo admin frontend
    dubbo admin frontend由npm管理和构建,在开发环境中,可以单独运行: npm run dev
  • 页面访问
    访问 http://localhost:8081, 由于前后端分开部署,前端支持热加载,任何页面的修改都可以实时反馈,不需要重启应用。
  • 跨域问题
    为了方便开发,我们提供了这种前后端分离的部署模式,主要的好处是支持前端热部署,在这种模式下,前端会通过8080端口访问后端的restful api接口,获取数据, 这将导致跨域访问的问题。因此我们在dubbo-admin-frontend/config/index.js添加了支持跨域访问的配置,当前端通过npm run dev单独启动时,这些配置将被激活,允许跨域访问

本地测试

首先我们 下载他的源码

git clone https://github.com/apache/incubator-dubbo-ops.git

imagepng

接着我们用IDEA来打开他

imagepng

我们发现他是一个 前后端分离的 应用哦
这一点 真的很牛逼
越来越跟上潮流了

我们首先让程序运行起来
- 在 dubbo-admin-backend/src/resources/application-production.properties中指定注册中心地址

可能你会遇到下面的错误 是因为我们的 maven版本不行
我们升级下maven版本

[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.6:install-node-and-npm (install node and npm) on project dubbo-admin-frontend: The plugin com.github.eirslett:frontend-maven-plugin:1.6 requires Maven version 3.1.0 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginIncompatibleException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :dubbo-admin-frontend

我们升级到 最新的 maven

imagepng

你会在 运行命令
mvn clean package 的过程中看到这样一句话
我们正在下载 和 生成 node 环境

[INFO] Installing node version v9.11.1
[INFO] Downloading https://nodejs.org/dist/v9.11.1/node-v9.11.1-win-x64.zip to D:\luckincoffee\env\apache-maven-3.6.0\resp\com\github\eirslett\node\9.11.1\node-9.11.1-win-x64.zip
[INFO] No proxies configured
[INFO] No proxy was configured, downloading directly
[INFO] Unpacking D:\luckincoffee\env\apache-maven-3.6.0\resp\com\github\eirslett\node\9.11.1\node-9.11.1-win-x64.zip into D:\githubTest\incubator-dubbo-ops\dubbo-admin-frontend\node\tmp
[INFO] Copying node binary from D:\githubTest\incubator-dubbo-ops\dubbo-admin-frontend\node\tmp\node-v9.11.1-win-x64\node.exe to D:\githubTest\incubator-dubbo-ops\dubbo-admin-frontend\node\node.exe

中途可能会出现一些 异常情况
尝试 关闭你的 占用文件夹 或者 git 客户端 (这个自己根据自己情况来)

然后 你再次 运行 mvn clean package
就会构建成功的

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for dubbo-admin 0.0.1-SNAPSHOT:
[INFO] 
[INFO] dubbo-admin ........................................ SUCCESS [  0.935 s]
[INFO] dubbo-admin-frontend ............................... SUCCESS [03:12 min]
[INFO] dubbo-admin-backend ................................ SUCCESS [01:10 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  04:23 min
[INFO] Finished at: 2018-11-28T15:35:47+08:00
[INFO] ------------------------------------------------------------------------
[WARNING] The requested profile "nexus" could not be activated because it does not exist.

因为我们的 这个管理程序 是 前后端分离的
前端需要 运行在 node 环境之上

maven 在构建的 时候 会同时执行 node 相关命令的
并且 第一次构建完毕之后
node 进行 就会运行起来的
所以这个时候 我们需要 运行我们的后端程序

找到这个类
imagepng

直接点击运行就好了

如果你出现 编译错误的话 可能需要调节 目标 jdk版本
我是IDEA 我是这样调节的

imagepng

我视频里面也有讲解 可以看下

然后我们的程序会启动 打开浏览器
imagepng

接下来我们启动我们之前的 provider consumer
注意 因为我们之前的 tomcat 也是 8080 所以 我们需要修改端口然后再启动
启动以后我们就可以在 dubbo-admin 查看和管理我们的服务了

我们这里输入 * 点击搜索
imagepng

我尝试了
除了 这个 功能可以用之外 其他的都还是在开发阶段
好吧 我们只能期待了
此时我只想说
看看人家springcloud

还是用老版本的吧

我们来到 这个地址
https://github.com/apache/incubator-dubbo/releases
下载老版本的 dubbo 发行版本

imagepng

然后我们解压他 找到 dubbo-admin

imagepng

同样的 我们把他 加载到 IDEA

然后 用maven工具构建他
我实话 说一句 这个过程真的有点长
你可以去我的公众号 下载 我已经编译好的 dubbo-admin.war
关注公号 , 回复文字 dubbo 就可以下载了

找到我们的配置文件
它默认的配置是这样的
imagepng

我们启动项目
看到了熟悉的控制台 关键还是中文的

imagepng

接下来就可以开始愉快的玩耍了

imagepng

后记

我们对比了新的控制台 和 老的控制台
新的控制台 好像更加牛逼了
最起码 界面做起来很吊的样子
我们对他充满期待
老的控制台 如果是用到生产环境中的话
我们可以在网上找到的资源也会相应的多一些
这一点我觉得很不错的
如果大家对于这篇文章有什么不理解的地方可以留言告诉我
也可以看我的视频
视频教程:https://www.bilibili.com/video/av36799192/
课程源码:https://github.com/ibywind/dubbo-learn
关注公众号 查看更多技术干货
还可加群 , 众多好基友在等你

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Dubbo-AdminDubbo 的管理控制台,提供了可视化的服务管理界面和服务治理功能。以下是 Dubbo-Admin 的接口文档: 1. 获取所有服务列表 接口地址:/api/services 请求方式:GET 请求参数:无 返回参数: ``` { "success": true, "serviceList": [ "com.xxx.service.UserService", "com.xxx.service.OrderService", "com.xxx.service.ProductService" ] } ``` 2. 获取服务详细信息 接口地址:/api/service 请求方式:GET 请求参数: ``` { "service": "com.xxx.service.UserService" } ``` 返回参数: ``` { "success": true, "service": "com.xxx.service.UserService", "methods": [ { "name": "getUserById", "parameterTypes": [ "java.lang.String" ], "returnType": "com.xxx.model.User", "exceptionTypes": [], "annotations": [], "attributes": {} }, { "name": "getUsers", "parameterTypes": [], "returnType": "java.util.List<com.xxx.model.User>", "exceptionTypes": [], "annotations": [], "attributes": {} } ] } ``` 3. 获取服务提供者列表 接口地址:/api/providers 请求方式:GET 请求参数: ``` { "service": "com.xxx.service.UserService" } ``` 返回参数: ``` { "success": true, "providers": [ { "url": "dubbo://192.168.0.1:20880/com.xxx.service.UserService", "application": "userServiceApp", "group": "userService", "version": "1.0.0", "methods": [ "getUserById", "getUsers" ] }, { "url": "dubbo://192.168.0.2:20880/com.xxx.service.UserService", "application": "userServiceApp", "group": "userService", "version": "1.0.0", "methods": [ "getUserById", "getUsers" ] } ] } ``` 4. 获取服务消费者列表 接口地址:/api/consumers 请求方式:GET 请求参数: ``` { "service": "com.xxx.service.UserService" } ``` 返回参数: ``` { "success": true, "consumers": [ { "ip": "192.168.1.1", "application": "userApp", "group": "userService", "version": "1.0.0" }, { "ip": "192.168.1.2", "application": "orderApp", "group": "userService", "version": "1.0.0" } ] } ``` 5. 获取服务调用统计信息 接口地址:/api/statistics 请求方式:GET 请求参数: ``` { "service": "com.xxx.service.UserService", "method": "getUserById" } ``` 返回参数: ``` { "success": true, "statistics": [ { "ip": "192.168.1.1", "successCount": 100, "failureCount": 10, "elapsedTime": 5000, "concurrent": 100 }, { "ip": "192.168.1.2", "successCount": 200, "failureCount": 20, "elapsedTime": 10000, "concurrent": 200 } ] } ``` ### 回答2: dubbo-admin 接口文档是用于 Dubbo 分布式服务框架的管理平台的接口文档。该文档提供了 Dubbo-admin 的各种接口方法的详细描述和使用说明,方便开发人员了解和使用 Dubbo-admin 的功能。 Dubbo-admin 是一个基于Dubbo的开源项目,用于管理和监控 Dubbo 服务的平台。通过 Dubbo-admin,开发人员可以方便地查看和管理 Dubbo 服务的注册、订阅、调用和监控等信息,从而更好地掌握整个分布式服务的运行情况。 Dubbo-admin 接口文档主要包含以下内容: 1. 服务管理接口:包括服务的注册和注销,查询已注册的服务,以及服务的增删改查等功能。通过这些接口,开发人员可以方便地管理和维护 Dubbo 服务。 2. 调用管理接口:包括服务的调用和查看服务调用信息等功能。通过这些接口,开发人员可以方便地查看服务的调用情况,从而及时发现和解决服务调用的问题。 3. 监控管理接口:包括服务的监控和查询服务的监控信息等功能。通过这些接口,开发人员可以方便地查看服务的监控数据,如调用次数、平均响应时间等,从而及时了解服务的运行状况。 4. 权限管理接口:包括用户的登录和权限管理等功能。通过这些接口,开发人员可以方便地管理用户的访问权限,保护 Dubbo-admin 的安全。 总之,Dubbo-admin 接口文档是开发人员使用 Dubbo-admin 的重要参考,提供了丰富的接口方法和使用说明,方便开发人员快速上手并有效地使用 Dubbo-admin 进行分布式服务的管理和监控。 ### 回答3: dubbo-admin是一个开源的Dubbo服务管理和治理平台,提供了一种方便的方式来管理和监控Dubbo服务。接口文档是对dubbo-admin的API接口进行详细的描述和说明。 dubbo-admin的接口文档主要包括以下内容: 1. 接口列表:列出了dubbo-admin提供的所有接口,包括接口名称、描述、请求方法和请求路径等信息。 2. 接口参数:对每个接口的请求参数进行说明,包括参数名称、数据类型、是否必填、参数说明等。 3. 接口返回值:对每个接口的返回值进行说明,包括返回值的数据类型、含义、示例等。同时还会说明可能的错误码和错误信息,以及如何处理异常情况。 4. 接口示例:提供了一些常见的接口使用示例,帮助用户更好地理解如何使用接口。 5. 接口权限:对每个接口的访问权限进行说明,包括需要的认证方式、权限等级等信息。 通过接口文档,用户可以了解到dubbo-admin提供的所有功能和接口及其使用方法。开发人员可以根据接口文档进行接口的调用和测试,并根据返回值和错误码进行相应的处理。同时,接口文档还可以作为一种参考资料,供开发人员进行二次开发和定制化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值