我感觉我太难了,花了一天时间来安装, 不过总算解决了,坚持总有回报的
见上一遍文章 MYSQL安装
源码安装框架才需要做这一步, 如果只是用c++写服务, 只需要下载tarscpp代码即可
下载TarsFramework源码
cd /data/
git clone https://github.com/TarsCloud/TarsFramework.git --recursive
然后进入build源码目录
cd /data/TarsFramework/build
chmod u+x build.sh
./build.sh prepare
./build.sh all
编译时默认使用的mysql开发库路径:include的路径为/usr/local/mysql/include,lib的路径为/usr/local/mysql/lib/
若mysql开发库的安装路径不在默认路径需要修改CMakeLists文件中mysql开发库的路径。CMakeLists在${source_folder}/TarsFramework/
和${source_folder}/TarsFramework/tarscpp/
目录下各有一个同名文件。
修改文件中上述路径为本机mysql开发库的路径
(参考路径:"/usr/include/mysql";"/usr/lib64/mysql")。
如果需要重新编译
./build.sh cleanall
./build.sh all
切换至root用户,创建安装目录
cd /usr/local
mkdir tars
chown ${普通用户}:${普通用户} ./tars/ #这个好像不是必要
框架有两种模式:
注意:需要完成TarsFramework的编译和安装
下载tarsweb并copy到/usr/local/tars/cpp/deploy目录下(注意目录名是web, 不要搞错!):
git clone https://github.com/TarsCloud/TarsWeb.git
mv TarsWeb web #这个步骤还是不要省
cp -rf web /usr/local/tars/cpp/deploy/
例如, 这是/usr/local/tars/cpp/deploy下的文件:
[root@cb7ea6560124 deploy]# ls -l
total 52
-rw-rw-r-- 1 tars tars 1923 Nov 2 17:31 centos7_base.repo
-rwxrwxr-x 1 tars tars 1515 Nov 5 18:21 Dockerfile
-rwxrwxr-x 1 tars tars 2844 Nov 5 18:21 docker-init.sh
-rwxrwxr-x 1 tars tars 215 Nov 5 18:21 docker.sh
-rw-rw-r-- 1 tars tars 664 Nov 2 17:31 epel-7.repo
drwxrwxr-x 4 tars tars 30 Nov 2 17:31 framework
-rwxrwxr-x 1 tars tars 4599 Nov 8 09:41 linux-install.sh
-rw-rw-r-- 1 tars tars 191 Nov 2 17:31 MariaDB.repo
-rwxrwxr-x 1 tars tars 565 Nov 8 09:23 README.md
-rwxrwxr-x 1 tars tars 539 Nov 8 09:23 README.zh.md
-rwxrwxr-x 1 tars tars 9713 Nov 7 09:42 tars-install.sh
drwxrwxr-x 2 tars tars 44 Nov 7 10:04 tools
drwxr-xr-x 11 tars tars 4096 Oct 31 11:01 web
这是tars-web最讨厌的地方, 执行又不报错, 让你找半天也不知道问题在哪 (新手、新开源项目文档少)。
安装nodejs 我是虚拟机(是多差的虚拟机啊,编译要半个小时), 就直接下载二进包,copy就能用。
wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz
xz -d node-v12.13.0-linux-x64.tar.xz
tar -xf node-v12.13.0-linux-x64.tar
cp -rf node-v12.13.0-linux-x64 /usr/local/node-v12.13.0
ln -s /usr/local/node-v12.13.0/bin/node /usr/bin/node
ln -s /usr/local/node-v12.13.0/bin/npm /usr/bin/npm
ln -s /usr/local/node-v12.13.0/bin/npx /usr/bin/npx
cd ~
vi .bash_profile
加下如下 在 “PATH= P A T H : PATH: PATH:HOME/bin” 后面 添加一行,内容如下:
export NODE_PATH="/usr/local/node-v12.13.0/lib/node_modules/;/usr/local/lib/node_modules"
npm i pm2 -g
cd /usr/local/tars/cpp/deploy/web
npm i -g
框架可以部署在单机或者多机上, 多机是一主多从模式, 通常一主一从足够了:
部署完成后会创建4个数据库,分别是db_tars、db_tars_web、 tars_stat、tars_property。
其中db_tars是框架运行依赖的核心数据库,里面包括了服务部署信息、服务模版信息、服务配置信息等等;
db_tars_web是web管理平台用到数据库
tars_stat是服务监控数据存储的数据库;
tars_property是服务属性监控数据存储的数据库;
MYSQL_HOST: mysql数据库的ip地址
MYSQL_ROOT_PASSWORD: mysql数据库的root密码
INET: 网卡的名称(ifconfig可以看到, 比如eth0), 表示框架绑定的本机IP, 注意不能是127.0.0.1
REBUILD: 是否重建数据库,通常为false, 如果中间装出错, 希望重置数据库, 可以设置为true
SLAVE: 是否是从节点
举例, 安装两台节点, 一台数据库(假设: 主[192.168.7.151], 从[192.168.7.152], mysql:[192.168.7.153])
进入/usr/local/tars/cpp/deploy, 执行:
主节点上执行(192.168.7.151)
#./tars-install.sh DB_HOST DB_port DB_user DB_pwd 本机IP 重新安装 节点
./tars-install.sh 192.168.7.151 3306 root root@appinside 192.168.7.151 false false
主节点执行完毕后, 从节点执行:
#./tars-install.sh DB_HOST DB_port DB_user DB_pwd 本机IP 重新安装 节点
./tars-install.sh 192.168.7.151 3306 root root@appinside 192.168.7.151 false true
执行过程中的错误参见屏幕输出, 如果出错可以重复执行(一般是下载资源出错)
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
打开你的浏览器输入: http://xxx.xxx.xxx.xxx:3000/ 如果顺利, 可以看到web管理平台