【TARS】UBUNTU下關於TAF框架的安裝和C++環境的配置,以及demo實例

前言

本文中安裝TARS框架的方法大部分都是來自於官方的GUIDE,官方GUIDE中配置TARS的方法很多,本文中只選擇了適合本機的方法。本人系統是UBUNTU16,如果你也是ubuntu系統,希望能幫到你。安裝步驟雖然多,彷彿比當初自己配caffe環境時還要麻煩,不過TARS用起來是真的方便,寫邏輯業務就完事了。以前自己寫HTTP還得要寫一大堆的header解析就令人頭疼。

一. 安裝依賴庫

sudo apt-get install build-essential bison flex cmake psmisc libncurses5-dev zlib1g-dev

二. MYSQL安裝

(1) 我直接用的是apt-get的安裝方式,cmd命令如下:

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

安裝完成後可以在新終端的命令行中輸入

service mysql start //啓動mysql

這種安裝方式,mysql的datadir和basedir等路徑可以看其配置文件,cmd命令如下

vim /etc/mysql/mysql.conf.d/mysqld.cnf

如果要將mysql設置爲可以遠程訪問,可以註銷(需要root權限)配置文件中的

bind-address		= 127.0.0.1

(2) 創建mysql的賬戶
mysql安裝完成後,會有個root的默認賬戶,該賬戶的密碼在安裝時會提示你設置,從終端進入mysql數據庫。

mysql -u root -p

開始創建用於tars框架的新賬戶,在mysql中輸入一下命令

CREATE USER 'tars'@'localhost' IDENTIFIED BY '123456'; 

其中,tars爲mysql數據庫的賬戶,123456爲mysql的密碼,localhost指的是本機的mysql數據庫。創建完成後,該賬戶是沒有權限的,我們要對其進行mysql的權限分配。

GRANT ALL PRIVILEGES ON *.* TO 'tars'@'localhost'; 
flush privileges;

權限分配完成,輸入quit退出mysql,然後執行以下cmd命令重啓mysql

service mysql restart

現在可以試試輸入 mysql -u tars -p能否進入mysql數據庫了。

三. TARS的C++環境安裝

下載TARS框架源碼,隨便cd進入一個目錄,我的是/home/chenzl/RPC/,在命令行輸入

git clone https://github.com/TarsCloud/TarsFramework.git --recursive

下載完成後進入TarsFramework的目錄,輸入以下下命令把框架build起來

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

該代碼最終會安裝到/usr/local目錄下,我們需要做點前提工作,創建兩個文件夾,這需要root權限

sudo /usr/local/app 
sudo /usr/local/tars

最後路徑回到TarsFramework的目錄下的build文件夾中,輸入

make install

四. TarsWeb安裝

TarsWeb是用於管理服務部署發佈的平臺,相當好用。
進入目錄/home/chenzl/RPC,將TarsWeb的代碼下載,並將其重命名爲web後,拷貝到/usr/local/tars/cpp/deploy下

cd /home/chenzl/RPC
git clone https://github.com/TarsCloud/TarsWeb.git
mv TarsWeb web
sudo cp -rf web /usr/local/tars/cpp/deploy

官方GUIDE中爲UBUNTU設計了一鍵部署的命令,命令如下

cd /usr/local/tars/cpp/deploy
sudo chmod a+x linux-install.sh
sudo linux-install.sh MYSQL_HOST MYSQL_ROOT_PASSWORD INET REBUILD(false[default]/true) SLAVE(false[default]/true) MYSQL_USER MYSQL_PORT

下面這段摘抄至官方GUIDE

MYSQL_HOST: mysql數據庫的ip地址

MYSQL_ROOT_PASSWORD: mysql數據庫的root密碼(注意root不要有太特殊的字符, 例如!, 否則shell腳本識別有問題, 因爲是特殊字符)

INET: 網卡的名稱(ifconfig可以看到, 比如eth0), 表示框架綁定的本機IP, 注意不能是127.0.0.1

REBUILD: 是否重建數據庫,通常爲false, 如果中間裝出錯, 希望重置數據庫, 可以設置爲true

SLAVE: 是否是從節點

MYSQL_USER: mysql用戶, 默認是root

MYSQL_PORT: mysql端口
//===============================================//
以我本機爲例子,因爲只在自己電腦上部署,所以是主節點了:
sudo ./linux-install.sh 0.0.0.0 123456 eth0 false false tars 3306

但是我遇到的問題沒那麼簡單,安裝過程報錯了
具體錯誤如下:
在這裏插入圖片描述
仔細看上面的信息, 發現在tars-install過程中的參數對不上。其中USER是false,PORT是tars,試了挺多次都有這個錯誤,有可能是我自己的參數填的有問題(但是是根據guide中的命令來對參數進行修改了)。
於是我進入了目錄/usr/local/tars/cpp/deploy,查看了linux-install.sh的腳本,發現了我們是執行到如下階段報錯的
在這裏插入圖片描述
報錯的地方正是執行tars-install.sh這個腳本的開始階段,既然前面的部分沒有報錯,那麼我們就乾脆直接自己在命令行執行tars-install.sh這個腳本。 從上圖我們可以看到已經給出了參數的順序,我們只需要按照順序填就好了 , 但是填參數的時候你會發現,這個INSTALL_PATH應填什麼呢,這個參數在linux-install.sh中已經給出了值:INSTALL_PATH=/usr/local/app
我的機器中命令如下,相應的參數你們自己對應着改就好了:

cd /usr/local/tars/cpp/deploy
sudo ./tars-install.sh 0.0.0.0 123456 192.168.31.99(這裏HOSTIP地址ifconfig可以看到) true false tars 3306 /usr/local/app

安裝完成。

五. 以下是最後的一點小配置

sudo -s source /etc/profile
//授予用戶權限
sudo chown (你自己的用戶名):(你自己的用戶名)  /home/(你自己的用戶名)/.pm2/rpc.sock /home/(你自己的用戶名)/.pm2/pub.sock
sudo chown -R (你自己的用戶名):(你自己的用戶名) /usr/local/tars /usr/local/app

後面輸入pm2 list,就會看到如下,同時登錄http://(你填的HOSTIP):3000可進入Tarsweb
在這裏插入圖片描述
注意, 這裏官方GUIDE中也提到過, 機器重啓後可能會發現命令行輸入pm2 list出不來上圖了,此時需要輸入以下代碼

sudo su
source /etc/profile
/usr/local/app/tars/tars-start.sh  //啓動tars服務
pm2 list 

六. demo實例

這裏的方式仿照TARS快速入門(c++),因爲這裏已經有實例的demo了,我就不寫了。這裏只寫新版的TarsWeb怎麼使用,TarsWeb網站以及和老版本不一致了,所以我另寫了一個。
1. 進入http://(你的HOSTIP):3000後的tarsweb頁面
在這裏插入圖片描述
上圖的左邊欄目的,TestApp和AddTwoNumApp是我自己寫的小程序,核心服務是左上的tars列表。

2. 發佈服務
點擊上方的運維管理,進入運維管理頁面
在這裏插入圖片描述

應用: TestApp  //對應[APP]
服務名稱:HelloServer  //對應[Server]
OBJ:HelloObj  //對應[Servant]
地址:HOSTIP

在這裏插入圖片描述
點擊確定,在主頁面中對該服務點擊重啓
在這裏插入圖片描述

3. 上傳發布包
點擊發布管理------>發佈選中節點------>上傳發布包,併發布, 完成!
在這裏插入圖片描述

接下來我們在命令行運行官方實例,就會有如下
在這裏插入圖片描述

網上看到關於UBUNTU安裝TARS的教程不是很多,而且感覺別人寫的有點亂,於是就自己寫一個了,自己安裝的過程也踩了很多坑。如果有疑問歡迎留言,如果能幫到您,小手收藏點贊哈。

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