Rainbond集成第三方服务实践(集群外数据库)

若是在公有云(好比阿里云, AWS)上的分布式数据库, 没法迁移到 Rainbond 上; 或是其余还没有迁移到 Rainbond 的数据库, 那么你可使用第三方服务将它们注册到 Rainbond 中, 从而使得集群内服务也能够访问它们。本文将演示如何把集群外的 MySQL 经过第三方服务注册到 Rainbond 集群中, 并为其定义共享环境变量,从而解决多个服务重复定义数据库链接信息变量的问题。php

若是Rainbond安装在阿里云,请注意使用阿里云RDS云数据库时必须与Rainbond集群处于同一个区域。mysql

前期准备

  • 请确保你已经安装了 Rainbond V5.1 或更高的版本。
  • 须要添加的服务, 本文使用的是 Rainbond 集群外的一个 MySQL。
  • phpMyAdmin, 能够在应用云市中安装, 也能够经过镜像的方式建立.

你能够假设这个 MySQL 是很是复杂的, 好比它是一个分布式, 主从复制, 读写分享的 MySQL, 迁移的难度比较在; 那么你能够先不迁移这个 MySQL, 经过第三方服务将这个 MySQL 的实例添加到 Rainbond 集群中, 让它也可使用 Rainbond 服务通讯治理, 服务拓扑关系等功能.sql

步骤 1: 填写第三方服务信息

登陆 Rainbond 控制台, 进入 建立应用 -> 添加第三方服务.docker

填写 服务名称, 应用名称, 服务注册方式(以 API 注册为例), 服务地址等信息.数据库

点击 建立服务, 并在检测经过后, 点击 建立.json

步骤 2: 添加实例地址

1. 获取添加实例的 API 地址和秘钥

添加实例的 API 地址和秘钥等信息在服务的总览 页面中, 以下图所示:api

Minion

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":"修改为功"}

详细的 API 注册请参考: 基于API注册的第三方服务app

步骤 3: 添加端口

建立完成后, 会进入到服务的管理页面. 在导航中选择 端口.curl

点击添加端口, 输入端口为 3306, 选择 mysql 协议.

添加完成后, 打开对内服务, 开启服务的服务通讯治理功能.

这里须要注意的是, 内部的服务能够添加多个端口, 而第三方服务只能添加一个端口.

步骤 4: 定义和分享链接信息

在导航中选择 链接信息, 而后定义 MySQL 的链接信息(链接信息其实是服务的环境变量). 如图所示:

Minion

这样, 当其余服务依赖了这个 MySQL 后, 就能够直接使用它的链接信息. 也就是说, 定义后的链接信息, 是能够分享出去的.

步骤 5: 确认服务

打开对内服务后, 该服务就可使用 Rainbond 的服务通讯治理功能.

使准备好的 phpMyAdmin, 与依赖第三方服务创建依赖; 而后更新或启动 phpMyAdmin.

在 phpMyAdmin 的 Dashboard 中, 点击访问, 对其进行访问, 并输入 MySQL 的帐号密码.

你应该会在浏览器中看到相似下面的网页:

Minion

这代表, 你已经成功地将集群外的服务(MySQL), 经过第三方服务添加到了集群中.

进入 phpMyAdmin 的实例容器, 查看环境变量, 你应该能够看到步骤 4 中定义的 MySQL 链接信息:

# env | grep MYSQL
MYSQL_PASS=rainbond
MYSQL_HOST=127.0.0.1
MYSQL_USER=root
MYSQL_PORT=3306

这代表, MySQL 的链接信息已经成功地被分享给 phpMyAdmin 了. 在这个例子中, phpMyAdmin 没有使用这些链接信息, 你实际的使用过程当中, 你能够根据实际的状况对这些链接信息进行利用.

总结

至此, 相信你已经了解了如何将 Rainbond 集群外的服务注册到集群中, 并为定义和分享其环境变量. 第三方服务注册到集群后, 能够像内部服务同样, 使用通讯治理, 服务拓扑关系等功能.

相关文章
相关标签/搜索