tars框架之tarsgateway安装
在研究腾讯tars框架时,出于前端调⽤需要,需要研究tars⽹关,在编译tarsgateway时⾛了很多弯路,由于⾃⾝虚拟机⽹络原因⽤git命令checkout不下来github的代码,于是⼿⼯下载,⽽⼿⼯下载没有下载到使⽤了引⽤依赖的⼦模块源码,导致报错,⽽且我⽤上传的源码⽼是时不时地把不同⼦模块的给我转成乱码,真是⽤对⼯具和上传编码很重要!由于服务器环境是内⽹,所以选了了⼿⼯部署gateway的模式,发现官⽹的实例的命令写得残缺!这点我也是醉了,都不验证好在发上去吗?
总结了⼀下,对于在编译过程中的cmake和make,还有install.sh脚本⼀开始我都没有去理解他们本⾝或是脚本⾥⾯的命令,只是单纯地按照教程来机械操作,遇到问题不知如何下⼿,后来卡住了实在没办法了,⼀⼀查询他们命令的意思,还有⼀个字⼀个字地看⽇志的报错,把install.sh脚本看了个遍才知道⼿⼯部署模式的命令是出错了,这才恍然⼤悟,然后顺利装上了,还是不要浮躁,要静下⼼来看,c++的编译环境⼀点都不了解导致了我的茫然和恐惧,最终导致整个⼈焦躁不安,越发不能发现问题所在,还是要保持⼀颗敬畏之⼼,好好学习!
如果觉得编译⿇烦,可直接下载
依赖环境
软件 软件要求
linux 内核版本: 2.6.18 及以上版本(操作系统依赖)
gcc 版本: 4.8.2 及以上版本、glibc-devel(c++语⾔框架依赖)
bison ⼯具版本: 2.5 及以上版本(c++语⾔框架依赖)
flex ⼯具版本: 2.5 及以上版本(c++语⾔框架依赖)
cmake 版本: 3.2 及以上版本(c++语⾔框架依赖)
mysql 版本: 5.6 及以上版本(框架运⾏依赖)
nvm 版本: 0.35.1 及以上版本(web 管理系统依赖, 脚本安装过程中⾃动安装)
node 版本: 12.13.0 及以上版本(web 管理系统依赖, 脚本安装过程中⾃动安装)
运⾏服务器要求:安装 linux 系统的机器 or mac 机器
编译包依赖下载安装介绍
源码编译过程需要安装:gcc, glibc, bison, flex, cmake, ncurses-devel zlib-devel
例如,在 Centos7 下,执⾏:
yum install glibc-devel gcc gcc-c++ bison flex cmake which psmisc ncurses-devel zlib-devel
在 ubuntu 下执⾏:
sudo apt-get install build-essential bison flex cmake psmisc libncurses5-dev zlib1g-dev
在 mac 安装, 请先安装 brew(如何在 mac 上安装 brew, 请⾃⾏搜索)
brew install bison flex cmake
查看linux内核版本
cat /proc/version
查看gcc 版本
gcc --version
bison ⼯具版本
没有的⽤yum install bison安装mysql下载下来没安装包
flex ⼯具版本
没有的⽤yum install flex安装
cmake 版本
如果没安装请参考
我这⾥安装的是3.3.2
Mysql 安装
正式部署时, 如果你的 mysql 可以安装在其他机器上.
Tars 框架安装需要在 mysql 中读写数据, 因此需要安装 mysql, 如果你已经存在 mysql, 可以忽略该步骤.
安装 mysql 请参考
Mysql client 安装
tars>=2.1.0 可以跳过这⼀步
注意请保证 mysql 在 PATH 环境变量的⽬录下
which mysql
如果你本机安装了 mysql, 那么会⾃动安装 mysql 客户端, 这⼀步可以跳过.
如果你的 mysql 在其他机器, 那么本机安装 Tars 框架之前, 需要先安装 mysql 客户端(安装时需要探测 mysql 的连通性)
rpm -ivh sql/mysql57-community-release-el7.rpm
yum install -y mysql
Tars C++开发环境
下载 TarsFramework 源码
cd ${source_folder}
git clone github/TarsCloud/TarsFramework.git --recursive
这个地址⼀般没是下载不了的,建议直接上gitee上下载
如果没有使⽤git命令下载,则需要⼿动下载包,但因为源码有⼦项⽬的引⽤依赖,所以要分别下,依赖的情况如下:
所以需要下载三个源码
然后将⼦模块的源码放在⽗模块的相应位置然后进⼊ build 源码⽬录
cd TarsFramework
cd build
cmake ..
make -j4
默认情况下, 编译 Tars 会⾃动下载 mysql-client 源码, 并编译 libmyqlclient.a
如果需要重新编译
cd build
make clean
make -j4
切换⾄ root ⽤户,创建安装⽬录
cd /usr/local
mkdir tars
mkdir app
然后再进⼊TarsFramework的build下进⾏安装
cd build
make install
默认的安装包路径:/usr/local/tars/cpp, 即编译完成的框架&安装脚本在这个⽬录 默认的安装完成后的路径为/usr/local/app, 即安装完成后的路径
install 以后, 依赖的库(mysql 静态库)和头⽂件也会安装到该⽬录下(/usr/local/tars/cpp/thirdparty), 如果开启了 ssl, nghttp2 同理.
开启了 ssl, nghttp2 请参见相关⽂章
如果你想调整安装⽬录(建议不要调整, 需要修改好⼏个的地⽅, 容易出错):
**需要修改tarscpp/ake⽂件中的安装路径。**
**需要修改tarscpp/servant/makefile/makefile.tars⽂件中的TARS_PATH的路径**
**需要修改tarscpp/servant/ake⽂件中的TARS_PATH的路径**
**需要修改tarscpp/servant/script/*.sh⽂件中的DEMO_PATH的路径**
安装tarsframe
⼀键安装
git clone github/TarsCloud/TarsGateway.git
cd TarsGateway/install;
./install.sh webhost token server_ip tars_db_ip tars_db_port tars_db_user tars_db_pwd
安装参数如下:
webhost TarsWeb管理端的host或ip:port
token TarsWeb管理端的token,可以通过管理端获取webhost:3001/auth.html#/token
server_ip GatewayServer部署的ip,⽬前这⾥只⽀持⼀个,如果需要更多,后⾯直接在平台上⾯扩容即可。
tars_db_ip tarsdb 所在的数据库服务器ip。
tars_db_port tarsdb 端⼝。
tars_db_user tarsdb ⽤户名(需要有建库建表权限)。
tars_db_pwd tarsdb 密码。
例如:
./install.sh 172.16.8.220:3000 036105e1ebfc13843b4db0edcd000b3d9f47b13928423f0443df54d20ca65855 172.16.8.220 172.16.8.221 3306 tars tars2 015
需要tarsweb的ip是为了部署,需要mysql的地址是为了初始化⽹关的sql脚本
验证安装结果:
修改默认安装端⼝
将server.json中的8200端⼝值修改为你需要的端⼝,然后重新执⾏./install.sh步骤,最后在TarsWeb中
将GatewayServer重启即可。⼿动部署安装
1. 准备tarscpp 编译环境;
2.
3. 编译:
cd TarsGateway;
mkdir build;
cd build;
cmake …;
make GatewayServer && make GatewayServer-tar;
执⾏完之后会在bulid下⾯产⽣这样的⽂件,⾥⾯就是编译好的包,可以⽤来在tars部署。
4. 在tarsweb使⽤mysql数据库中,新建⼀个数据库:
create database IF NOT EXISTS db_base
并在此库执⾏arsGateway-master/install下的db_base.sql脚本(⽹关所⽤数据)
5. 在tarsweb 管理平台上⾯,部署tars.GatewayServer,该服务有两个servant,即部署两个Obj,如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论