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之后,具体请参照界面操作指南 应用列表