腾讯开源后台开发框架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测试了,期待。

你可能感兴趣的:(Tars,Tars,后台开发,分布式,框架)