第三方服务创建
第三方服务创建
第三方服务创建依然存在两个入口,分别是平台左侧导航的 创建应用-添加第三方服务 和应用Dashboard页面的添加第三方服务按钮,创建流程一致。
创建静态第三方服务
选择服务注册方式为静态注册
填写服务的通信地址
比如服务有两个运行实例,IP地址分别是192.168.0.1 192.168.0.2,为了设置方便,我们可以填写第一个实例时携带上端口配置,即提供如下的数据,告知Rainbond服务的监听端口是8080,且都一致。
192.168.0.1:8080
192.168.0.2
提交创建,进入到服务的Dashboard页面对服务端口、连接信息、健康检查属性进行配置 参考第三方服务管理
创建动态第三方服务
- 选择服务注册方式为动态注册
- 选择动态注册类型
- 填写地址, Key 等服务注册中心的信息(用户名和密码为非必选项)
- 提交创建,进入到服务的 Dashboard 页面对服务端口、连接信息、健康检查属性进行配置。 参考第三方服务管理
服务注册中心中数据的格式
以 etcd 为例:
/rainbond/service1/3201a2727b6445e9a9234a26284549e6
{"ip":"192.168.0.1", "port": 5000}
/rainbond/service1/728d17f86a5f3d834b6db984dd4a50ad
{"ip":"192.168.0.2"}
这是注册在 etcd 中的两条信息, 每一条代表一个第三方服务的实例. 其中 /rainbond/service1 为上面填写的服务注册中心的信息的 Key, 3201a2727b6445e9a9234a26284549e6 为这条数据的唯一标识(uuid), 以斜杠分割.
{"ip":"192.168.0.107", "port": 5000} 为第三方服务的实例的 IP 地址和端口. 如果没有提供端口, 那么 Rainbond 将会取你在参考第三方服务管理中添加的端口.
创建基于API注册的第三方服务
选择服务注册方式为 API 注册
提交创建,进入到服务的Dashboard页面对服务端口、连接信息、健康检查属性进行配置 参考第三方服务管理
创建完成后, 可以根据总览页面中展示的
API地址和密钥, 通过调用 API 的方式, 动态的更改服务的通信地址.
API 提供了 GET, PUT, DELETE 三种调用方式, 分别对应服务地址的查询, 添加(或修改)和删除.
GET
下面是查询实例的 API 示例:
curl -s -G \
--url http://ip:port/console/third_party/8ad4b1c7ffb305f2b59b6de625b1ee6a \
--data secret_key=6RW0mYM3
执行完 curl 请求后, 会得到一个类似以下的响应:
{
"msg": "success",
"code": 200,
"msg_show": "查询成功",
"data": {
"list": [
{
"status": "healthy",
"ip": "192.168.0.1",
"is_static": true,
"is_online": true
},
...
]
}
}
请求参数说明:
| 参数 | 是否必填 | 说明 |
|---|---|---|
| secret_key | 是 | 密钥, 可以从参考第三方服务管理的总览页中获取 |
响应参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| code | int | 业务码 |
| msg | string | 对该请求的响应结果的详细描述 |
| msg_show | string | 对该请求的响应结果的描述, 用于展示 |
| status | string | 实例的状态, 可能的值为: healthy, unhealthy, unknown |
| ip | string | 实例的 IP 地址 |
| is_static | bool | 实例是否属于静态类型, true: 静态类型; false: 动态类型 |
| is_online | bool | 实例是否处于上线状态, true: 已上线; false: 已下线 |
PUT
下面是修改实例的 API 示例:
curl -X PUT \
--url http://192.168.1.200:7070/console/third_party/8d545c3e8e7780b228b6dcc77561388b \
-H "Content-Type: application/json" \
-d '{"secret_key":"4FsL5PWK","ip":"192.168.0.1","is_online":true}'
执行完 curl 请求后, 会得到一个类似以下的响应:
{
"msg": "success",
"code": 200,
"msg_show": "修改成功"
}
请求参数说明:
| 参数 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| secret_key | 是 | string | 密钥, 可以从参考第三方服务管理的总览页中获取 |
| ip | 是 | string | 服务实例地址, ipv4 格式 |
| is_online | 否 | bool | 是否上线, 默认 true |
响应参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| code | int | 业务码 |
| msg | string | 对该请求的响应结果的详细描述 |
| msg_show | string | 对该请求的响应结果的描述, 用于展示 |
DELETE
下面是删除实例的 API 示例:
curl -X DELETE \
--url http://192.168.1.200:7070/console/third_party/8d545c3e8e7780b228b6dcc77561388b \
-H "Content-Type: application/json" \
-d '{"secret_key":"4FsL5PWK","ip":"192.168.1.107","is_online":true}'
执行完 curl 请求后, 会得到一个类似以下的响应:
{
"msg": "success",
"code": 200,
"msg_show": "删除成功"
}
请求参数说明:
| 参数 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| secret_key | 是 | string | 密钥, 可以从参考第三方服务管理的总览页中获取 |
| ip | 是 | string | 服务实例地址, ipv4 格式 |
响应参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| code | int | 业务码 |
| msg | string | 对该请求的响应结果的详细描述 |
| msg_show | string | 对该请求的响应结果的描述, 用于展示 |
PUT 和 DELETE 方法的请求内容的类型为 application/json
第三方服务创建示例
对接内部服务
如Rainbond平台的rbd-app-ui或者rbd-monitor组件

创建完成后,需要手动上线。
针对示例来说,如果不想对外开放7070端口或者想通过80/443访问控制台可以通过此方式实现。
对接阿里云RDS
rainbond针对第三方组件的域名实例进行了相应的支持,允许用户添加第三方组件域名实例地址,并提供rainbond平台的对内服务。 结合域名可以解析到多个IP地址上这样一个现有的逻辑,rainbond平台仅允许添加一个域名实例地址到第三方组件中。
静态注册方式
在创建静态第三方组件的过程中,会有地址校验的逻辑,如果用户填写的地址有多个,并且域名地址个数大于等于1个,则不能通过校验。 换句话说,用户只能添加多个IP实例地址或1个域名实例地址。
动态注册方式
在创建动态第三方组件的过程中,特别是etcd这样的动态发现的方式添加实例地址时,同样会有地址的校验逻辑,如果发现数据中包含域名,则会使用第一个域名作为第三方组件的实例地址。
调整流程和对接平台内部服务一样,有几点需要注意,如果平台应用需要依赖第三服务安装的MYSQL,需要开启对内访问,同时需要手动添加应用连接信息。
