騰訊開源後臺開發框架Tars安裝

簡介


Tars是騰訊開源的一款後臺統一應用框架TAF(Total Application Framework),支持C++/Java/PHP/Nodejs/Go語言。

它集可擴展協議編解碼、高性能RPC通信框架、名字路由與發現、發佈監控、日誌統計、配置管理等於一體,通過它可以快速用微服務的方式構建自己的穩定可靠的分佈式應用,並實現完整有效的服務治理。

github地址:https://github.com/TarsCloud/Tars 。

筆者嘗試使用它搭建一個C++微服務分佈式系統。本文記錄安裝過程。

環境:操作系統CentOS 7(虛擬機)

# uname -a
Linux localhost 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

注:github上已有詳盡的安裝過程,本文根據筆者安裝過程,進行精簡和提煉,以達到快速安裝的目的,不當之處請指出。

安裝


官方部署文檔請參考:https://tarscloud.github.io/TarsDocs/installation/ 。

本文采用源碼編譯方式部署。步驟如下:

  1. 安裝系統依賴包

yum install glibc-devel gcc gcc-c++ bison flex cmake which psmisc ncurses-devel zlib-devel

  • 執行過程中需要按幾次y以繼續
  • 默認安裝的cmake版本太低,不支持後續的安裝,需要安裝高版本的cmake(如,v3.14.6)
    • 先卸載舊版本: yum remove cmake -y && rm -f /usr/bin/cmake
    • 下載新版本:wget -c 網址,可能會比較慢,可以直接用瀏覽器先下載tg包,再拷貝過來
    • 解壓進入目錄,執行安裝:./bootstrap && gmake && gmake install,較慢,需要root權限
    • 默認安裝在了usr/local/bin下,軟鏈接:ln -s /usr/local/bin/cmake /usr/bin/
  1. 安裝mysql

必須安裝,可以安裝在任意一臺可訪問的機器上。

步驟如下:

# 如果已經有了mysql,只需要本機安裝客戶端,安裝客戶端步驟如下:
rpm -ivh https://repo.mysql.com/mysql57-community-release-el7.rpm
yum install -y mysql 

##########################################################################

# 以下是完全安裝,包括服務端和客戶端
# 下載安裝
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
yum -y install  mysql-devel

# 啓動服務,默認端口:3306
systemctl start  mysqld.service
systemctl status mysqld.service

# 獲取初始密碼,通過yum安裝mysql時root賬號會默認設置一個密碼
grep "password" /var/log/mysqld.log

# 修改密碼後才能操作數據庫,先設置密碼限制,否則需要極複雜的規則
> mysql -p
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '${your password}';

# 通過這種方式安裝時已自動安裝了客戶端
which mysql
  1. Tars C++開發環境

步驟如下:

# 下載框架源碼
git clone https://github.com/TarsCloud/TarsFramework.git --recursive

# 編譯
cd TarsFramework
git submodule update --remote --recursive
cd build
cmake ..
make -j4

# 安裝(需要root,先創建2個目錄,用於保存安裝項)
cd /usr/local
mkdir tars
mkdir app

cd build # 剛纔編譯時的目錄
make install
# 默認的安裝包路徑:/usr/local/tars/cpp, 即編譯完成的框架&安裝腳本在這個目錄
  1. 框架安裝

使用一鍵部署, 安裝過程中需要網絡從外部下載資源。

步驟如下:

# 下載並重命名爲web
git clone https://github.com/TarsCloud/TarsWeb.git
mv TarsWeb web
cp -rf web /usr/local/tars/cpp/deploy/

# 此時 deploy目錄看起來是這樣的:
# ls -l
total 64
-rw-r--r--  1 root root  1922 Jan 10 21:44 centos7_base.repo
-rw-r--r--  1 root root  1229 Jan 10 21:44 Dockerfile
-rwxr-x---  1 root root  2959 Jan  8 21:46 docker-init.sh
-rwxr-x---  1 root root   215 Dec 31 15:37 docker.sh
drwxr-xr-x  4 root root  4096 Jan 10 21:41 framework
-rwxr-x---  1 root root  4876 Jan 10 21:38 linux-install.sh
-rw-r--r--  1 root root   565 Dec 31 15:37 README.md
-rw-r--r--  1 root root   539 Dec 31 15:37 README.zh.md
-rwxr-x---  1 root root  1157 Jan  7 16:38 tar-server.sh
-rwxr-x---  1 root root 12162 Jan 10 15:36 tars-install.sh
-rwxr-x---  1 root root   311 Dec 31 15:37 tars-stop.sh
drwxr-xr-x  2 root root  4096 Jan 10 21:41 tools
drwxr-xr-x 12 root root  4096 Jan  5 12:03 web

# 此處僅一鍵部署主節點,其他部署方式請參考文檔
# chmod a+x linux-install.sh
# ./linux-install.sh MYSQL_HOST MYSQL_ROOT_PASSWORD INET REBUILD(false[default]/true) SLAVE(false[default]/true) MYSQL_USER MYSQL_PORT
./linux-install.sh 127.0.0.1 mysql.pwd enp0s3 false false root 3306 # 耗時較長,如果出錯可以重複執行(一般是下載資源出錯)

# 安裝成功後的輸出如下
2020-03-20 18:00:59 INSTALL TARS SUCC: http://192.168.1.68:3000/ to open the tars web. 
 2020-03-20 18:00:59 If in Docker, please check you host ip and port. 
 2020-03-20 18:00:59 You can start tars web manual: cd /usr/local/app/web; npm run prd 
 2020-03-20 18:00:59 You can install tarsnode to other machine in web(>=1.3.1) 
 2020-03-20 18:00:59 ============================================================== 

  1. 打開web界面

本機打開瀏覽器,輸入:http://127.0.0.1:3000/ ,就可以看到Tars的web界面了。

這裏把我遇到的問題也記錄一下:

  • 網頁打不開,後臺通過pm2 list查看時,出現了錯誤,提示缺少一些組件koa。此時重複運行了一鍵安裝腳本,ok了。
  • 在另一臺機器打開時出現問題,關閉防火牆後解決

小結


總的來說,安裝過程還是比較順利的,遇到的問題也都能很快解決。

下一步就是探索這個框架並開始寫demo測試了,期待。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章