第三方服务
将它们注册到 Rainbond 中, 从而使得集群内服务也可以访问它们。本文将演示如何把集群外的 MySQL 通过第三方服务注册到 Rainbond 集群中, 并为其定义共享环境变量,从而解决多个服务重复定义数据库连接信息变量的问题。
如果Rainbond安装在阿里云,请注意使用阿里云RDS云数据库时必须与Rainbond集群处于同一个区域。
前期准备
-
请确保你已经安装了 Rainbond V5.1 或更高的版本。
-
需要添加的服务, 本文使用的是 Rainbond 集群外的一个 MySQL。
-
phpMyAdmin, 可以在应用云市中安装, 也可以通过镜像的方式创建.
你可以假设这个 MySQL 是非常复杂的, 比如它是一个分布式, 主从复制, 读写分享的 MySQL, 迁移的难度比较在; 那么你可以先不迁移这个 MySQL, 通过第三方服务将这个 MySQL 的实例添加到 Rainbond 集群中, 让它也可以使用 Rainbond 服务通信治理, 服务拓扑关系等功能.
步骤 1: 填写第三方服务信息
登录 Rainbond 控制台, 进入 创建应用
-> 添加第三方服务
.
填写 服务名称
, 应用名称
, 服务注册方式(以 API 注册为例)
, 服务地址
等信息.
点击 创建服务
, 并在检测通过后, 点击 创建
.
步骤 2: 添加实例地址
1. 获取添加实例的 API 地址和秘钥
添加实例的 API 地址和秘钥等信息在服务的总览
页面中, 如下图所示:
2. 能过 Restful API 添加服务实例
在你的终端中, 结合 1 中的 API 和秘钥, 输入类似以下的 curl 命令, 发起 PUT 请求, 将实例192.168.1.107
添加到服务中.
curl -X PUT \ --url http://192.168.1.200:7070/console/third_party/bb9371b3a3288e5abb329d780d85507b \ -H "Content-Type: application/json" \ -d '{"secret_key":"jErDmpot","ip":"192.168.1.107","is_online":true}' {"msg":"success","code":200,"data":{"bean":{},"list":[]},"msg_show":"修改成功"}
这里需要注意的是, 内部的服务可以添加多个端口, 而第三方服务只能添加一个端口.
# env | grep MYSQL MYSQL_PASS=rainbond MYSQL_HOST=127.0.0.1 MYSQL_USER=root MYSQL_PORT=3306
总结
这表明, MySQL 的连接信息已经成功地被分享给 phpMyAdmin 了. 在这个例子中, phpMyAdmin 没有使用这些连接信息, 你实际的使用过程中, 你可以根据实际的情况对这些连接信息进行利用.
这表明, 你已经成功地将集群外的服务(MySQL), 通过第三方服务添加到了集群中.
你应该会在浏览器中看到类似下面的网页:
在 phpMyAdmin 的 Dashboard 中, 点击访问, 对其进行访问, 并输入 MySQL 的账号密码.
使准备好的 phpMyAdmin, 与依赖第三方服务建立依赖; 然后更新或启动 phpMyAdmin.
打开对内服务
后, 该服务就可以使用 Rainbond 的服务通信治理功能.
步骤 5: 确认服务
这样, 当其他服务依赖了这个 MySQL 后, 就可以直接使用它的连接信息. 也就是说, 定义后的连接信息, 是可以分享出去的.
在导航中选择 连接信息
, 然后定义 MySQL 的连接信息(连接信息实际上是服务的环境变量). 如图所示:
步骤 4: 定义和分享连接信息
添加完成后, 打开对内服务
, 开启服务的服务通信治理功能.
点击添加端口
, 输入端口为 3306
, 选择 mysql
协议.
创建完成后, 会进入到服务的管理页面. 在导航中选择 端口
.
步骤 3: 添加端口
详细的 API 注册请参考: 基于API注册的第三方服务
登录后评论
立即登录 注册