Tars致力于建设微服务技术生态,在底层基础设施、服务框架、上层应用以及DevOps等方面,都做了较为深入的研发。
2020年3月10日,Linux基金会正式宣布旗下的TARS开源项目成立TARS子基金会。这是一个 专注于微服务领域 的开源基金会,致力于帮助企业拥抱微服务体系架构,解决在使用微服务方面可能出现的问题。这是首个 起源于中国开源项目 的国际开源基金会,也是Linux基金会下 唯一聚焦微服务技术生态 的子基金会。
Tars基金会里目前收录了9个项目,分为5部分:工具集(Tars Lab)、服务治理(Service Governance)、微服务开发框架(Development Framwork)、存储(DCache)和基础设施(Infrustructure)。
1、Tars Lab
Tars Lab项目提供了压力测试TarsJMeter,基准测试集TarsBenchmark和一些开发工具包。TarsJavaStart,可以生成服务端和客户端的TarsJava脚手架,快速开始Tars服务的开发。TarsTools,是一款支持多种IDE的JetBrains插件,为实现编辑Jce/Tars文件使用的(支持Intellij IDEA、Android Studio、PhpStorm、WebStorm、GoLand、CLion等)。
2、服务治理
服务治理包含了2个项目:TSeer专注于处理服务注册与发现;TarsGateway是基于Tars框架开发的微服务网关,除具备网关的基础功能外,还可以自动将HTTP转换成Tars-RPC协议。
3、微服务开发框架
这部分只包含Tars一个项目,核心模块由C++开发,提供了多语言开发框架,默认rpc调用,是Tars基金会的核心项目。其他项目都是围绕这个项目研发的。
4、微服务存储
这部分只包含DCache一个项目,它是基于Tars框架开发的 分布式共享内存存储系统 ,支持常用的kv数据结构、支持二级索引、支持在线扩缩容、支持自动持久化到后端db等特性。DCache依赖Tars框架的运行,但也得益于Tars,使得存储服务的运维成本几乎为0。
5、微服务基础设施
这是一个将Tars与K8S融合使用的项目,致力于将Tars融入到K8S生态中。
在这方面还有一个更优秀的项目K8SFramework,致力于将Tars与K8S深度融合,相信未来会纳入到基金会中。
| Tars的前世今生
Tars的前身是腾讯内部的TAF框架,已经经过了10年的验证,稳定运行与1.6w+服务器,100多个业务线中。
据统计, Tars已在超过 120 家公司、 261200 台服务器上稳定运行。
在分布式环境下,所有的微服务(包括DCache的服务)都可以通过框架自带的控制台-TarsWeb进行管理, 可以做到所有服务状态可监控,可以在控制台上进行启停、修改配置、执行运维指令等操作。
在分布式部署的情况下,可以通过Web控制台实现一键升级、回退。
Tars自带配置中心,分级配置,可以统一修改配置,做到“一点修改,全局生效”。
在服务部署时,可以在界面上填写要发布的节点,一键部署、扩容。
框架提供了状态监控的能力,可以监控服务的调用质量,如流量情况,平均耗时、超时率和异常率。
框架状态可以在控制台上一键核查。
Tars提供配套的性能测试工具,这也是Tars基金会的子项目。性能测试工作不再依赖专业的测试人员。
| Tars优势
1、原生RPC调用
Tars使用自研的RPC协议通信,服务之间建立长连接,在通信频繁的场景下具备显著的性能优势。
2、多语言支持
除C++和Java外,Tars还支持NodeJs,PHP,Go等语言,提供了相应的SDK。当团队技术栈多样化时,可以多语言协同开发,无缝对接,开发者可以选择自己熟悉的语言进行开发,提升团队整体效率。
在这方面,Spring Cloud想要支持异构语言,需要借助SideCar构建Service Mesh。 业界现在有一些比较流行的服务网格解决方案,但是 并没有形成统一的标准 , 可移植性不高 。比较常见的像Istio,由于是代理模式,而且非长连接,会存在 更大的延迟 。另一方面,Istio的部署和运维都非常 复杂 ,需要更多的学习成本和运维成本。
3、内置服务治理功能
Tars框架内嵌了丰富的服务治理功能,包括熔断、限流、负载均衡、认证、加密等。同时,在服务监控、数据采集,以及灰度部署、跨机房部署等方面,都原生支持,集成度高。
Spring Cloud要支持这些功能,要么需要集成其他组件,要么需要设计开发来实现。都需要付出额外的学习成本和研发成本。
4、运维监控
Tars为使用者提供了一体化的运维管理控制台,我们可以在Web上进行一键部署、扩容、升级、回退等运维操作。
Spring Cloud并没有配套的工具。要实现Web管控, 需要借助K8S和容器,同样需要付出额外的成本。
5、国产化
Tars是国内公司主导的开源项目,这一点就不多说什么了。
6、“套装”优势
Tars框架提供了微服务相关的一体化解决方案,常规情况下不需要再去集成其他组件,不存在兼容性问题。这就好比MacBook和兼容机的区别,兼容机你可能需要付出更多的试错成本才能达到想要的效果。
| 劣势
1、项目热度
Tars开源较晚,到目前只有5年多时间,项目热度不如Spring Cloud,应用也没Spring Cloud广泛。
2、Tars的云原生之路
Tars和K8s的深度融合也开源不久(2020年7月,K8SFramework),还有待落地验证。这个项目现在的更新频率较高,不建议在生产中使用。但是从这一点也可以看到社区工作者对Tars与K8S融合的高涨热情,相信未来这个项目一定会大放异彩!
Tars在微服务开发、运维、监控等方面提供了一体化的解决方案,可以帮助我们低成本构建企业级微服务。适用于各种规模的团队,各种规模的系统。
在做技术选型时,如果团队中有C++开发人员,或者有多语言开发的情况,而且团队规模、资源有限的情况下,建议选择Tars。它在运维、监控、测试等方面会为我们节约大量成本。
未来,随着 K8SFramework 项目的日渐成熟,相信Tars生态会被更多的团队熟知和使用。
开源推荐-C++开发的微服务框架Tars
2020年3月10日,Linux基金会正式宣布旗下的TARS开源项目成立TARS子基金会。这是一个 专注于微服务领域 的开源基金会,致力于帮助企业拥抱微服务体系架构,解决在使用微服务方面可能出现的问题。这是首个 起源于中国开源项目 的国际开源基金会,也是Linux基金会下 唯一聚焦微服务技术生态 的子基金会。Tars...
tars是什么意思翻译?
Tars是一个开源的基于C++语言的高性能微服务框架。它以模板库的形式提供了微服务相关的一系列编程模型和工具集合。Tars不仅具备高可用、高性能等优秀特性,而且还拥有丰富的扩展能力,可以支持多种编程语言、多种协议和消息队列等“插件式”的设计理念,实现业务的快速发展。Tars是从淘宝的分布式架构演进而来,...
腾讯开源的TARS是什么?
TARS是一个支持多语言、内嵌服务治理功能,且能与Develops能很好协同的微服务框架。包括:Develops、OSS、开发框架、语言、基础设施(物理机、虚拟机、容器等)。TARS在服务治理方面,有自己的整体思路、自动区域感知、set模型、流量控制、分钟式根据等功能,可以有效地防止故障扩散。
微服务开源框架TARS 之 框架服务解析
Property服务:自定义业务指标上报。Notify服务:异常信息报告。Node服务:节点管理和业务服务的统一控制。总的来说,TARS框架通过这些运维服务,为微服务的开发、运维提供了强大的支持,使得开发人员能够更专注于业务逻辑,提高整体运营效率。
TARS马上要成立基金会了,这款微服务框架适合你么?
1. TARS简介:TARS是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架TAF(Total Application Framework),目前支持C++、Java、PHP、Nodejs、Go语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速实现开发、部署、测试,以及上线。2. TARS整体架构:TARS...
最全开源go微服务框架对比
go-kratos: 作为轻量级框架,web和rpc服务协议直接采用protobuf和grpc,依赖注入和代码自动生成是其亮点。go-kratos专注于解决微服务的核心需求,社区维护适中,官网更新和解答渠道有限。tarsgo: 腾讯开源项目,依托于C++框架tars,提供了丰富的功能,但独立性相对较弱。社区基于tars的影响力尚可,有QQ和微信群...
开源项目推荐:主流RPC开源框架及知识科普
3. Tencent之Tars:腾讯自研的微服务框架,提供强大的RPC功能。4. Baidu之brpc:百度开发的高性能RPC框架,专为大规模系统设计。5. golang之rpcx:高性能的Go语言RPC服务框架,易于使用且功能强大。6. 搜狗之srpc:基于Workflow的自研RPC框架,提供高效的服务调用能力。四、其他C++ RPC框架 还有如RCF、...
虎牙直播用什么编程语言开发的?
虎牙直播这类的中大型公司,基本已知的技术都是有用到的,主要的技术栈有Java,C++,Golang,音视频技术主要有基于WebRtc的P2P视频技术,后端技术基于腾讯TARS构建了微服务体系,微服务治理方面有用到Nacos;其中Nacos是虎牙和阿里共建的项目,也是其中的主导者,在微服务方面的实践能力比较强,直播的方案。采...
微服务平台标准解读
独立开发部署。它在技术实现上各有差异,常见的微服务框架包括Spring Cloud、ServiceComb、Tars、Dubbo、SOFA、Istio等,在服务调用、服务治理等能力上各有侧重,目前暂无统一的微服务相关标准。企业应用中需要标准制定对技术能力进行规范,更好的引导和帮助企业在进行新应用微服务化开发及传统应用微服务改造。
性能最好的php框架?
PHP有这个腾讯高性能RPC开发框架Tars实现服务治理(微服务),是一个兼顾易用性、高性能、服务治理的框架,目的是让开发更简单,聚焦业务逻辑,让运营更高效,一切尽在掌握。目前该框架在腾讯内部,有100多个业务、1.6多万台服务器上运行使用。Swoft是基于swoole协程的高性能PHP微服务框架,内置http服务器。