前言
Tars是腾讯开源的高性能,多语言RPC开发框架,同时配套了一体化的服务治理平台。看源码是学习和了解Tars的方式之一,Tars的源码主要分成三部分:
- RPC:各个语言版本的rpc实现,包括TarsCpp,TarsJava,TarsGo等
- Framework:基于TarsCpp实现的服务治理平台,包括各个框架节点的实现:tarsnode,tarsregistry,tarsconfig等
- web:web管理平台的实现
接下来的系列文章主要分析和整理tarscpp和Framework的实现。欢迎对tars有兴趣的同学一起交流学习。
一.tarscpp
这里分析的是tarscpp的v1.2.0版本。另外,如果没有特别标注,文章中举的例子和代码路径都是TCP,tars协议,且都没有启用协程。
1.服务端
- tars服务端(一):server的启动流程
- tars服务端(二):网络io模型和线程模型
- tars服务端(三):收发包管理
- tars服务端(四):链接管理
- tars服务端(五):过载保护
- web命令的实现(待写)
2.客户端
- tars客户端(一):一次rpc的调用过程
- tars客户端(二):请求包从主调线程到网络线程的过程
- tars客户端(三):收发包管理(待写)
- tars客户端(四):寻址与负载均衡,容灾(待写)
3.公共部分
- 日志(待写)
- 协程(待写)
- tars协议分析(待写)
- 消息染色,调用链跟踪,ssl等(待写)