依賴環境
- windows版本:win7以上
- cmake:3.2以上
- mysql: 4.1.17以上
- nvm:0.35.1以上
- node: 12.13.0以上
分別安裝vs2019,nodejs, git, mysql等。vs2019中已經包含cmake。
安裝完成後,在cmd窗口中輸入命令測試環境是否已經生效。
Tars C++開發環境安裝
注意以下操作都在cmd命令行下進行, 請保證cmake git nodejs vs等環境變量的生效。
注意以管理員身份打開cmd。
- 下載TarsFramework源碼
#選擇好安裝目錄
git clone https://github.com/TarsCloud/TarsFramework.git --recursive
#進入build目錄
cd TarsFramework
git submodule update --remote --recursive
cd build
cmake ..
cmake --build . --config RelWithDebInfo
cmake --build . --config RelWithDebInfo --target install
默認情況下, 編譯Tars會自動下載mysql client源碼, 並編譯libmyql.dll。
默認的安裝包路徑:c:/tars/cpp, 即編譯完成的框架&安裝腳本在這個目錄。
默認的安裝完成後的路徑爲c:/tars-install, 即安裝完成後的路徑。
install以後, 依賴的庫(mysql靜態庫)和頭文件也會安裝到該目錄下(c:/tars/cpp/thirdparty), 如果開啓了ssl, nghttp2同理.
Tars框架安裝
注意:需要先完成TarsFramework的編譯和安裝。
此處只安裝一個節點,不安裝從節點。如果需要安裝從節點,請參考相關文檔。
在c:\tars\cpp\deploy下載tarsweb並重命名爲web:
cd c:\tars\cpp\deploy
git clone https://github.com/TarsCloud/TarsWeb.git web
一鍵部署:
#busybox.exe sh ./windows-install.sh MYSQL_HOST MYSQL_PASSWORD HOSTIP REBUILD(false[default]/true) SLAVE(false[default]/true) MYSQL_USER MYSQL_PORT
busybox.exe sh ./windows-install.sh 192.168.1.18 123456 192.168.1.18 false false root 3306
說明:
框架可以部署在單機或者多機上, 多機是一主多從模式, 通常一主一從足夠了:
- 主節點只能有一臺, 從節點可以多臺
- 主節點默認會安裝:tarsAdminRegistry, tarspatch, tarsweb, tarslog, 這幾個服務在從節點上不會安裝
- tarsAdminRegistry只能是單點(帶有發佈狀態)
- tarslog也只能是單點, 否則日誌會分散在多機上
- 原則上tarspatch, tarsweb可以是多點, 如果部署成多點, 需要把c:\tars-install\patchs目錄做成多機間共享, 否則無法正常發佈服務
- 可以後續把tarslog部署到大硬盤服務器上
- 實際使用中, 即使主從節點都掛了, 也不會影響框架上服務的正常運行, 只會影響發佈
- 一鍵部署會自動安裝好web, 同時開啓web權限
部署完成後會創建5個數據庫,分別是db_tars、db_tars_web、db_user_system、 tars_stat、tars_property。
- db_tars是框架運行依賴的核心數據庫,裏面包括了服務部署信息、服務模版信息、服務配置信息等等;
- db_tars_web是web管理平臺用到數據庫
- db_user_system是web管理平臺用到的權限管理數據庫
- tars_stat是服務監控數據存儲的數據庫;
- tars_property是服務屬性監控數據存儲的數據庫;
安裝成功會看到如下輸出信息:
2019-10-31 11:06:13 INSTALL TARS SUCC: http://xxx.xxx.xxx.xxx:3000/ to open the tars web.
2019-10-31 11:06:13 If in Docker, please check you host ip and port.
2019-10-31 11:06:13 You can start tars web manual: cd /usr/local/app/web; npm run prd
訪問web界面,輸入192.168.1.18:3000,會出現首次登錄設置密碼的界面。
進入後如下圖:
問題解決
一鍵部署時,如果出現以下錯誤:
是因爲安裝的pm2未生效。
新打開cmd窗口,再次運行一鍵安裝部署腳本:
#busybox.exe sh ./windows-install.sh MYSQL_HOST MYSQL_PASSWORD HOSTIP REBUILD(false[default]/true) SLAVE(false[default]/true) MYSQL_USER MYSQL_PORT
busybox.exe sh ./windows-install.sh 192.168.1.18 123456 192.168.1.18 false false root 3306
結果如下: