简单使用docker部署Tars

Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架TAF(Total Application Framework),目前支持C++,Java,PHP,Nodejs,Go语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速开发、部署、测试、上线。 它集可扩展协议编解码、高性能RPC通信框架、名字路由与发现、发布监控、日志统计、配置管理等于一体,通过它可以快速用微服务的方式构建自己的稳定可靠的分布式应用,并实现完整有效的服务治理,非参Nice。本文简单介绍通过docker部署一套用于开发测试的Tars尝尝滋味。

配置清单

单节点部署Tars:

  • 操作系统: CentOS 7
  • MySQL: 5.7
  • Tars: v1.0.1 (bitbus/tars:latest)

Docker安装

安装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

Docker启动MySQL 5.7

% 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使用本地网络。

Docker启动Tars master

% 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。

参考文档

 Protocol Buffers Messages Encoding Rust系统环境变量配置 

Comments