腾讯开源高性能 RPC 开发框架与微服务平台 Tars

2017-04-28 10:27


Tars 是基于名字服务使用 Tars 协议的高性能 RPC 开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。

Tars 是将腾讯内部使用的微服务架构 TAF(Total Application Framework)多年的实践成果总结而成的开源项目,目前已于4 月 10 日正式对外开源。Tars 的开源协议为 BSD-3-Clause 。

作为支持多语言的高性能 RPC 开发框架和配套一体化的服务治理平台,Tars 可以帮助企业或者用户以微服务的方式快速构建稳定可靠的分布式应用,它的设计灵感来源于采取分层思想,实现开发与运营之间的分离。目前该框架在腾讯内部,已经在 160 多个业务(如手机浏览器、应用宝、手机管家、手机 QQ、手机游戏等)、1.6 多万台服务器上运行使用,基于该框架部署运行的服务节点规模达到上万个,经过了海量用户及数据量的考验。

与业界其他同类或相识的应用框架相比,Tars 具有以下优势:

  1. Tars 提供了支持多语言(C++/Java)的高性能(性能可达 40w/s)RPC 开发框架,比如业界开源的 Dubbo 只支持Java,业界开源的 Thrift、gRPC 性能没有 Tars 好;
  2. Tars 具有针对服务进行治理的运营管理平台,比如名字路由与发现、部署/发布/扩缩容、立体化监控、日志管理、配置管理等,让系统的运行状态一切尽在掌握,而业界的 Thrift、gRPC 只是 RPC 通信框架,业务在它们之上仍要做很多开发;
  3. Tars 经过多年在腾讯不同业务上的实践和发展,其成熟度和稳定性更好。

Tars 的名字来自星际穿越电影人机器人 Tars,电影中的 Tars 有着非常友好的交互方式,任何初次接触它的人都可以轻松的和它进行交流,同时能在外太空、外星等复杂地形上,超预期的高效率的完成托付的所有任务。拥有着类似设计理念的 Tars 也是一个兼顾易用性、高性能、服务治理的框架,目的是让开发更简单,聚焦业务逻辑,让运营更高效,一切尽在掌握。

历经近十年探索,Tars终于正式开源,它更适合消息调用客户端和服务端比较明确的业务场景。开源地址为:https://github.com/Tencent/Tars

关于Tars的详细技术介绍可以关注:

https://github.com/Tencent/Tars/blob/master/Introduction.md