6.Radar开发指南 - SpringCloud/spring-cloud-radar GitHub Wiki
本文档介绍了如何在本地使用IDE编译、运行Radar,从而可以帮助大家了解Radar的内在运行机制,同时也为自定义开发做好准备。
模块依赖图有助于我们对整个项目结构有总体的认识。下面会描述每个数字对应的项目目录和意义,radar-open是项目根目录。
1. \radar-open\radar-core
radar-core 项目radar最基础的项目,里面包含一些公用的方法和公用的dto对象。是所有项目的基础。
2. \radar-open\radar-biz
radar-biz 项目注册中心radar-rest 和 portal 界面的业务逻辑层,里面包含数据库实体和dal访问对象,供radar-rest 和 radar-ui使用。
3. \radar-open\radar-dependency-rest
因为有些内部的逻辑,所以将radar-rest中内部的部分代码拆分成两个项目一个是内部一个是公开版,两个版本基本是相同的,除了一些内部的依赖,开源版本去掉了内部的依赖。
4. \radar-open\radar-dependency-ui
原因同3
5. \radar-open\radar-rest
radar-rest注册中心,用来对客户端和第三方提供rest服务,引用radar-dependency-rest。
6. \radar-open\radar-ui
radar-ui portal界面,用来给用户提供界面操作和管理,引用radar-dependency-ui。
7. \radar-open\radar-client\radar-client-core
此项目是radar的原生客户端,基本不依赖任何第三方jar包,除了http访问,比较轻量级,封装了一些客户端接口。
8. \radar-open\radar-client\radar-client-spring
此项目是在原生客户端的基础上,做了一些spring 封装,以简化操作,和提供了一些统计接口。
9. \radar-open\radar-client\radar-client-springboot
此项目是在spring客户端的基础上,为springboot做了一些自动化加载配置。
10. \radar-open\radar-client\radar-client-springboot-ribbon
相当于一个rpc客户端,当服务端注册到radar上后,可以直接利用radar ribbon客户端访问服务端提供的服务,默认负载是轮询。
11. \radar-open\radar-client\radar-client-spring-http
此项目是根据在radar客户端基础上,封装的一个基于httpclient的远程调用,代码比较简单。
12. \radar-open\radar-demo\radar-demo-dto
此项目是radar客户端demo的契约类项目。
13. \radar-open\radar-demo\radar-demo-provider,\radar-open\radar-demo\radar-demo-provider-springmvc
此模块对应有两个项目一个是基于spring boot 一个是基于springmvc 目的都是一样,服务提供方。
14. \radar-open\radar-demo\radar-demo-consumer-ribbon
表示此项目是基于radar-ribbon客户端调用服务端的。
15. \radar-open\radar-demo\radar-demo-consumer
表示此项目是基于radar-http 客户端服务端的。
还有一些其他的项目,属于附加测试的,不一一介绍。
- Java: 1.8+
- MySQL: 5.6.5+
- Maven
- IDE: 没有特殊要求
准备好数据库,参考快速启动1.6 创建数据库,1.7 配置数据库连接信息。
配置完数据库后,主要是设置vm 参数。
下面以eclipse为例,Intellij 请参考vm设置。注意eclipse 最好安装springboot 插件。如下图所示:
安装成功后,点击
然后会在eclipse下方显示项目信息如下图:

右键点击radar-rest,单击 Debug Configurations 如下图所示
然后弹出对话框,注意要选中左边的radar-rest 项目,然后设置对应的环境参数,如下图所示:
然后就可以点击
中的项目启动了。
启动设置跟radar-rest一样,不单独描述。
status
URL | Method | remark
- | :-: | :- /app/stat | get| 获取应用、集群、实例的数量 /app/cache1 | get | 获取所有的应用(测试用接口) /app/cache | get | 统计在线和下线实例的数量(也可指定AppId) /app/trace | get | 保存状态变更的信息
pub
| URL | Method | remark |
|---|---|---|
| /api/pub/app/instance/add | post | 注册实例 |
| /api/pub/app/instance/adjust | post | 拉入拉出 |
| /api/pub/app/instance/adjustSupperStatus | post | 调节超级槽位 |
| /api/pub/app/instance/getstatus | post | 获取实例状态 |
| /api/pub/app/instance/pubdel | post | 删除实例 |
client
| URL | Method | remark |
|---|---|---|
| /api/client/app/getAppPollingCount | get | 正在拉取应用信息的请求数量 |
| /api/client/app/getApp | post | 获取应用信息 |
| /api/client/app/getAppMeta | post | 获取应用的Meta信息 |
| /api/client/app/updateVersion | post | 更新应用的版本信息 |
| /api/client/app/getAppPolling | post | 获取最新的应用信息,没有则等待 |
| /api/client/app/registerClient | post | 注册客户端信息 |
| /api/client/app/instance/registerInstanceCount | get | 获取注册的请求数量 |
| /api/client/app/instance/heartbeat | post | 实例心跳 |
| /api/client/app/instance/registerInstance | post | 注册实例 |
| /api/client/app/instance/deRegisterInstance | post | 下线实例 |
启动radar-ui之后,具体请参照界面操作指南
应用列表
