tars框架之tarsgateway安装

在研究腾讯tars框架时,出于前端调用需要,需要研究tars网关,在编译tarsgateway时走了很多弯路,由于自身虚拟机网络原因用git命令checkout不下来github的代码,于是手工下载,而手工下载没有下载到使用了引用依赖的子模块源码,导致报错,而且我用SecureFXPortable.exe上传的源码老是时不时地把不同子模块的CMakeLists.txt给我转成乱码,真是用对工具和上传编码很重要!由于服务器环境是内网,所以选了了手工部署gateway的模式,发现官网的实例的命令写得残缺!这点我也是醉了,都不验证好在发上去吗?
总结了一下,对于在编译过程中的cmake和make,还有install.sh脚本一开始我都没有去理解他们本身或是脚本里面的命令,只是单纯地按照教程来机械操作,遇到问题不知如何下手,后来卡住了实在没办法了,一一查询他们命令的意思,还有一个字一个字地看日志的报错,把install.sh脚本看了个遍才知道手工部署模式的命令是出错了,这才恍然大悟,然后顺利装上了,还是不要浮躁,要静下心来看,c++的编译环境一点都不了解导致了我的茫然和恐惧,最终导致整个人焦躁不安,越发不能发现问题所在,还是要保持一颗敬畏之心,好好学习!

如果觉得编译麻烦,可直接下载
基于targatewayv2.4.17源码编译后包

依赖环境

软件 软件要求
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

image-20211204190941230

查看gcc 版本

gcc --version

image-20211204191008323

bison 工具版本

没有的用yum install bison安装

tars框架之tarsgateway安装_第1张图片

flex 工具版本

image-20211204191920347

没有的用yum install flex安装

cmake 版本

如果没安装请参考

https://blog.csdn.net/wteruiycbqqvwt/article/details/90812498

我这里安装的是3.3.2

image-20211204191219169

Mysql 安装

正式部署时, 如果你的 mysql 可以安装在其他机器上.

Tars 框架安装需要在 mysql 中读写数据, 因此需要安装 mysql, 如果你已经存在 mysql, 可以忽略该步骤.

安装 mysql 请参考mysql 安装

Mysql client 安装

tars>=2.1.0 可以跳过这一步

注意请保证 mysql 在 PATH 环境变量的目录下

which mysql

如果你本机安装了 mysql, 那么会自动安装 mysql 客户端, 这一步可以跳过.

如果你的 mysql 在其他机器, 那么本机安装 Tars 框架之前, 需要先安装 mysql 客户端(安装时需要探测 mysql 的连通性)

rpm -ivh https://repo.mysql.com/mysql57-community-release-el7.rpm
yum install -y mysql

Tars C++开发环境

下载 TarsFramework 源码

cd ${source_folder}
git clone https://github.com/TarsCloud/TarsFramework.git --recursive

这个地址一般没是下载不了的,建议直接上gitee上下载

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

如果没有使用git命令下载,则需要手动下载包,但因为源码有子项目的引用依赖,所以要分别下,依赖的情况如下:

tars框架之tarsgateway安装_第2张图片

tars框架之tarsgateway安装_第3张图片

所以需要下载三个源码

TarsFramework:https://github.com/TarsCloud/TarsFramework.git

TarsCpp:https://github.com/TarsCloud/TarsCpp.git

TarsProtocol:https://github.com/TarsCloud/TarsProtocol.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/cmake/Common.cmake文件中的安装路径。**
**需要修改tarscpp/servant/makefile/makefile.tars文件中的TARS_PATH的路径**
**需要修改tarscpp/servant/makefile/tars-tools.cmake文件中的TARS_PATH的路径**
**需要修改tarscpp/servant/script/*.sh文件中的DEMO_PATH的路径**

安装tarsframe

一键安装

    git clone https://github.com/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,可以通过管理端获取http://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 tars2015

需要tarsweb的ip是为了部署,需要mysql的地址是为了初始化网关的sql脚本

验证安装结果:

在浏览器打开 http://${server_ip}:8200/monitor/monitor.html , 如果能正常显示 hello TupMonitorxxx 就表示安装成功。

修改默认安装端口

将server.json中的8200端口值修改为你需要的端口,然后重新执行./install.sh步骤,最后在TarsWeb中将GatewayServer重启即可。

手动部署安装

  1. 准备tarscpp 编译环境;

  2. 获取源码: git clone https://github.com/TarsCloud/TarsGateway.git

  3. 编译:

    cd TarsGateway;

    mkdir build;

    cd build;

    cmake …;

    make GatewayServer && make GatewayServer-tar;

    执行完之后会在bulid下面产生GatewayServer.tgz这样的文件,里面就是编译好的包,可以用来在tars部署。

  4. 在tarsweb使用mysql数据库中,新建一个数据库:

create database IF NOT EXISTS db_base

并在此库执行arsGateway-master/install下的db_base.sql脚本(网关所用数据)
5. 在tarsweb 管理平台上面,部署tars.GatewayServer,该服务有两个servant,即部署两个Obj,如下:

  • tars.GatewayServer.ProxyObj 非tars协议 5个线程 端口 xxxx (一键部署的端口默认为8200)

  • tars.GatewayServer.FlowControlObj tars协议 1个线程 端口 xxxx

    tars框架之tarsgateway安装_第4张图片

  1. 添加配置文件:GatewayServer.conf,内容参考 TarsGateway/conf/GatewayServer.conf

    tars框架之tarsgateway安装_第5张图片

    tars框架之tarsgateway安装_第6张图片

  2. 发布服务

  3. 验证:同上一键部署 验证安装结果。

你可能感兴趣的:(tars,tars)