Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架TAF(Total Application Framework),目前支持C++,Java,PHP,Nodejs,Go语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速开发、部署、测试、上线。 它集可扩展协议编解码、高性能RPC通信框架、名字路由与发现、发布监控、日志统计、配置管理等于一体,通过它可以快速用微服务的方式构建自己的稳定可靠的分布式应用,并实现完整有效的服务治理,非参Nice。本文简单介绍通过docker部署一套用于开发测试的Tars尝尝滋味。
单节点部署Tars:
安装CentOS官方版本:
% sudo yum install -y docker
或者 安装Docker官方版本:
% sudo su
% yum install -y yum-utils device-mapper-persistent-data lvm2
% yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
% yum install -y docker-ce
启动Docker服务:
% sudo systemctl enable docker
% sudo systemctl start docker
% mkdir mysql-data
% sudo docker pull mysql:5.7
% sudo docker run -d --restart always --name tars-mysql \
--net=host \
-e MYSQL_ROOT_PASSWORD='root@appinside' \
-v ${PWD}/mysql-data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime:ro \
mysql:5.7
这里--net=host
让docker使用本地网络。
% sudo docker pull bitbus/tars:latest
% sudo docker run -d --restart always --name tars-master \
--net=host \
-e INET=eth0 \
-e REBUILD=false \
-e SLAVE=false \
-e MYSQL_HOST=192.168.124.18 \
-e MYSQL_ROOT_PASSWORD=root@appinside \
-v /etc/localtime:/etc/localtime:ro \
bitbus/tars:latest
--net=host
让docker使用本地网络-e INET=etho
本地网卡接口名,这里替换成对应系统环境的接口名字,比如这里就是eth0-e MYSQL_HOST=192.168.124.18
MySQL的host,如果mysql server部署在tars master的同一机器,比如上面,就对应网卡接口(eth0)的网络地址在浏览器访问http://192.168.124.18:3000 或 http://localhost:3000 如下:
Tars非常非常Nice,是一个非常完备的多语言支持RPC框架,自带一整套运维。目前相关可以搜到的使用文档非常少,本人是一个go开发,边看TarsGo源码边做开发然后熟悉Tars的细节,虽然有点累但很coding.后续再写文章描述Tars应用的开发流程与细节。Happy enjoy your heart from coding。