Tars 是腾讯从 2008 年到今天一直在使用的后台逻辑层的统一应用框架 TAF ( Total Application Framework ),目前支持 C++,Java,PHP,Nodejs,Golang 语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速开发、部署、测试、上线。 它集可扩展协议编解码、高性能 RPC 通信框架、名字路由与发现、发布监控、日志统计、配置管理等于一体,通过它可以快速用微服务的方式构建自己的稳定可靠的分布式应用,并实现完整有效的服务治理。目前该框架在腾讯内部,各大核心业务都在使用,颇受欢迎,基于该框架部署运行的服务节点规模达到上万个。
Tars 于 2017 年 4 月开源,并于 2018 年 6 月加入 Linux 基金会,项目地址 https://github.com/TarsCloud。
TarsGo 是 Tars 的 Go 语言实现版本, 于 2018 年 9 月开源, 项目地址 https://github.com/TarsCloud/TarsGo
Tars 协议是一种类 c++标识符的语言,用于生成具体的服务接口文件,Tars 文件是 Tars 框架中客户端和服务端的通信接口,通过 Tars 的映射实现远程对象调用。Tars 协议是和语言无关,基于 IDL 接口描述语言的二进制编码协议。
Protocol Buffers (简称 PB )是 Google 的一种数据交换的格式,它独立于语言,独立于平台,最早公布于 2008 年 7 月。随着微服务架构的发展及自身的优异表现,ProtoBuf 可用于诸如网络传输、配置文件、数据存储等诸多领域,目前在互联网上有着大量应用。
PB 协议是单独的协议,如果要支持 RPC,可以定义 service 字段,并且基于 protoc-gen-go 的 grpc 插件生成相应的 grpc 编码。
本次 Tars 支持 protoc-gen-go 的 plugin,可以将 service 直接生成 tars 相关的 RPC 代码
详细阅读 https://cloud.tencent.com/developer/article/1353058?s=original-sharing