SIGN IN SIGN UP
TarsCloud / Tars UNCLAIMED

Tars is a high-performance RPC framework based on name service and Tars protocol, also integrated administration platform, and implemented hosting-service via flexible schedule.

0 0 1 C++
2017-06-13 10:37:30 +08:00
[Click me switch to English version](Introduction.en.md)
2017-01-18 16:19:06 +08:00
# 目录
2017-04-14 10:39:57 +08:00
> * [1.](#main-chapter-1)
> * [2.](#main-chapter-2)
> * [3.](#main-chapter-3)
> * [4.](#main-chapter-4)
2017-01-18 16:19:06 +08:00
2017-04-14 10:42:38 +08:00
# 1. <a id="main-chapter-1"></a>介绍
2017-01-18 16:19:06 +08:00
2017-03-02 15:48:02 +08:00
Tars是基于名字服务使用Tars协议的高性能RPC开发框架
2017-01-18 16:19:06 +08:00
2017-03-02 15:48:02 +08:00
Tars是将腾讯内部使用的微服务架构TAFTotal Application FrameworkTars这个名字来自星际穿越电影人机器人Tars
Tars有着非常友好的交互方式
Tars也是一个兼顾易用性
2017-01-18 16:19:06 +08:00
2017-03-02 15:48:02 +08:00
1001.6使
2017-01-18 16:19:06 +08:00
2017-04-14 10:43:43 +08:00
# 2. <a id="main-chapter-2"></a>设计思想
2017-01-18 16:19:06 +08:00
2017-03-02 15:48:02 +08:00
Tars的设计思路是采用微服务的思想对服务进行治理
2017-01-18 16:19:06 +08:00
![tars](docs/images/tars.png)
IDL()使
使使使便
2017-04-14 10:43:43 +08:00
# 3. <a id="main-chapter-3"></a>整体架构
2017-01-18 16:19:06 +08:00
## 3.1. 架构拓扑图
![tars](docs/images/tars_tuopu.png)
2
:
2017-02-14 17:35:47 +08:00
Node服务节点和N(N>=0)Node服务节点会对业务服务节点进行统一管理
2017-01-18 16:19:06 +08:00
:
Web管理系统Web上可以看到服务运行的各种实时数据情况
Registry+
Patch
Config
Log
Stat便
Property使cache命中率等便
Notify访db失败信息等便
node能够与公共框架节点之间都是可以连通的
## 3.2. 服务交互流程图
![tars](docs/images/tars_jiaohu.png)
Web系统上传server的发布包到patchweb上提交发布server请求registry服务传达到nodenode拉取server的发布包到本地server服务
Web系统上的可以提交管理server服务命令请求registry服务传达到node服务node向server发送管理命令
server服务运行后nodenode然后把服务心跳信息上报到registry服务registry进行统一管理
server服务运行后statlogpropertynotifyconfig拉取服务配置信息
Client访问Server流程client可以通过server的对象名Obj间接访问serverClient会从registry上拉取server的路由信息ipport信息tcp或者udp方式访server(client也可以通过ip/port直接访问server)
## 3.3. web管理系统
![tars](docs/images/tars_web_system.png)
web管理系统主要包含以下功能
-
-
## 3.4. 服务结构图
:
![tars](docs/images/tars_server_client.png)
NetThread 线(epoll ET触发实现tcp/udp
BindAdapter servent对应的绑定端口的信息操作
ServantHandle线Servant的对象和接口调用
AdminServant
ServantImp Servant的业务处理基类Servent
NetThread 线(epoll ET触发实现tcp/udp
AdapterProxy
ObjectProxy /hash/
ServantProxy //Tars协议和非Tars协议
AsyncThread 线
Callback Callback的处理基类对象
2017-04-14 10:43:43 +08:00
# 4. <a id="main-chapter-4"></a>平台特性
2017-01-18 16:19:06 +08:00
## 4.1. tars协议
tars协议采用接口描述语言Interface description languageIDL使PRC远程调用的方式相互通信交流
voidboolbyteshortintlongfloatdoublestringunsigned byteunsigned shortunsigned int
enumconststructvectormapstructvectormap的嵌套
:
![tarsproto](docs/images/tars_tarsproto.png)
## 4.2. 调用方式
IDL语言协议
## 4.3. 负载均衡
Client通过访问名字服务获取到被调服务的地址信息列表Client再根据需要选择合适的负载均衡方式来调用服务
hash
![tars](docs/images/tars_junheng.png)
## 4.4. 容错保护
Client主动屏蔽
![tars](docs/images/tars_rongcuo.png)
使ClientClient地址列表拉取两个过程1
Client主动屏蔽
Client根据调用被调服务的异常情况来判断是否有故障来更快进行故障屏蔽client调用某个svr出现调用连续超时client会对此svr进行屏蔽svr节点
## 4.5. 过载保护
访
![tars](docs/images/tars_overload.png)
## 4.6. 消息染色
访使访便
![tars](docs/images/tars_dye.png)
## 4.7. IDC分组
访
![tars](docs/images/tars_idc.png)
docs目录下的tars_idc_set.md
## 4.8. SET分组
便Set部署能力set之间没有调用关系
![tars](docs/images/tars_set.png)
docs目录下的tars_idc_set.md
## 4.9. 数据监控
:
1.便
![tars](docs/images/tars_stat.png)
2.便使cache命中率等
![tars](docs/images/tars_property.png)
3.便
![tars](docs/images/tars_notify.png)
## 4.10. 集中配置
web化使退
Set配置
使
Set配置是具体一个Set分组下所有服务的公共配置
docs目录下的tars_config.md