若是在公有云(好比阿里雲, AWS)上的分佈式數據庫, 沒法遷移到 Rainbond 上; 或是其餘還沒有遷移到 Rainbond 的數據庫, 那麼你可使用第三方服務
將它們註冊到 Rainbond 中, 從而使得集羣內服務也能夠訪問它們。本文將演示如何把集羣外的 MySQL 經過第三方服務註冊到 Rainbond 集羣中, 併爲其定義共享環境變量,從而解決多個服務重複定義數據庫鏈接信息變量的問題。php
若是Rainbond安裝在阿里雲,請注意使用阿里雲RDS雲數據庫時必須與Rainbond集羣處於同一個區域。mysql
你能夠假設這個 MySQL 是很是複雜的, 好比它是一個分佈式, 主從複製, 讀寫分享的 MySQL, 遷移的難度比較在; 那麼你能夠先不遷移這個 MySQL, 經過第三方服務將這個 MySQL 的實例添加到 Rainbond 集羣中, 讓它也可使用 Rainbond 服務通訊治理, 服務拓撲關係等功能.sql
登陸 Rainbond 控制檯, 進入 建立應用
-> 添加第三方服務
.docker
填寫 服務名稱
, 應用名稱
, 服務註冊方式(以 API 註冊爲例)
, 服務地址
等信息.數據庫
點擊 建立服務
, 並在檢測經過後, 點擊 建立
.json
添加實例的 API 地址和祕鑰等信息在服務的總覽
頁面中, 以下圖所示: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
建立完成後, 會進入到服務的管理頁面. 在導航中選擇 端口
.curl
點擊添加端口
, 輸入端口爲 3306
, 選擇 mysql
協議.
添加完成後, 打開對內服務
, 開啓服務的服務通訊治理功能.
這裏須要注意的是, 內部的服務能夠添加多個端口, 而第三方服務只能添加一個端口.
在導航中選擇 鏈接信息
, 而後定義 MySQL 的鏈接信息(鏈接信息其實是服務的環境變量). 如圖所示:
這樣, 當其餘服務依賴了這個 MySQL 後, 就能夠直接使用它的鏈接信息. 也就是說, 定義後的鏈接信息, 是能夠分享出去的.
打開對內服務
後, 該服務就可使用 Rainbond 的服務通訊治理功能.
使準備好的 phpMyAdmin, 與依賴第三方服務創建依賴; 而後更新或啓動 phpMyAdmin.
在 phpMyAdmin 的 Dashboard 中, 點擊訪問, 對其進行訪問, 並輸入 MySQL 的帳號密碼.
你應該會在瀏覽器中看到相似下面的網頁:
這代表, 你已經成功地將集羣外的服務(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 集羣外的服務註冊到集羣中, 併爲定義和分享其環境變量. 第三方服務註冊到集羣后, 能夠像內部服務同樣, 使用通訊治理, 服務拓撲關係等功能.