Skip to content

6.Radar开发指南

lorgine edited this page Oct 9, 2018 · 1 revision

本文档介绍了如何在本地使用IDE编译、运行Radar,从而可以帮助大家了解Radar的内在运行机制,同时也为自定义开发做好准备。

1. 模块依赖图

模型依赖图 模块依赖图有助于我们对整个项目结构有总体的认识。下面会描述每个数字对应的项目目录和意义,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 客户端服务端的。

还有一些其他的项目,属于附加测试的,不一一介绍。

2. 本地开发环境

2.1 本地运行时环境

  1. Java: 1.8+
  2. MySQL: 5.6.5+
  3. Maven
  4. IDE: 没有特殊要求

准备好数据库,参考快速启动1.6 创建数据库,1.7 配置数据库连接信息

3. 本地启动

配置完数据库后,主要是设置vm 参数。 下面以eclipse为例,Intellij 请参考vm设置。注意eclipse 最好安装springboot 插件。如下图所示: 启动类 安装成功后,点击 启动类 然后会在eclipse下方显示项目信息如下图: 启动类

3.1 Radar-rest 启动

右键点击radar-rest,单击 Debug Configurations 如下图所示 启动类 然后弹出对话框,注意要选中左边的radar-rest 项目,然后设置对应的环境参数,如下图所示: 启动类 然后就可以点击 启动类 中的项目启动了。

3.2 Radar-ui 启动

启动设置跟radar-rest一样,不单独描述。

4. 主要接口

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 下线实例

5.界面展示

启动radar-ui之后,具体请参照界面操作指南 我的实例 应用列表 应用列表