本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

码报:【j2开奖】腾讯开源基于微服务的平台Tars:RPC开发、服务治理及一体化运营管理

时间:2017-04-11 14:41来源:天下彩论坛 作者:开奖直播现场 点击:
Tars取名于电影“星际穿越”中的机器人,是腾讯内部使用将近十年的基于微服务的统一应用框架TAF(Total Application Framework),目前腾讯有160多个业务(如手机浏览器、应用宝、手机管

  Tars取名于电影“星际穿越”中的机器人,是腾讯内部使用将近十年的基于服务的统应用框架TAF(Total Application Framework),目前腾讯有160多个业务(如手机浏览器、应用宝、手机管家等)在1.6多万台服务器上使用Tars。

  编者按

Tars主要是支持多语言的高性能RPC开发框架和配套体化的服务治理平台,可以帮助企业或者用户以微服务的方式快速构建稳定可靠的分布式应用。目前开源的Tars支持C++、Java两种语言,同时Node.js语言的Tars开源地址为:https://github.com/Tencent/Tars。

Tars取名于电影“星际穿越”中的机器人,是腾讯内部使用将近十年的基于微服务的统一应用框架TAF(Total Application Framework),目前腾讯有160多个业务(如手机浏览器、应用宝、手机管家等)在1.6多万台服务器上使用Tars。

近几年,业内已经有越来越多人关注并开始落地微服务,那么腾讯这款经历近十年探索的微服务治理平台是怎样的?它的开源会为社区带来哪些福音?为此,InfoQ采访了腾讯专家钟科。

  1业务发展,原有应用框架遭遇瓶颈

在业务种类不多、规模不大的早发展期,应用框架一般采用如下的技术方案:

码报:【j2开奖】腾讯开源基于微服务的平台Tars:RPC开发、服务治理及一体化运营管理

在业务变化不大的情况下,这种方案一般能很好的工作几年、甚至十年。但是,彼时业务发展很快,业务需求、系统复杂度、业务规模、参与人数、代腐化程度都在不断上升,各个业务团队慢慢陷于一种混乱状态,主要包括以下几点:

业务逻辑集中,耦合性强,开发维护成本高;

重复率高,基础或者公共组件能力不齐,交付效率和质量低;

非功能需求不达标,性能、高可用性、可扩展性等方面难以适应业务海量访问发展趋势;

运营数据缺失,管理能力薄弱,故障时分析和查找问题困难;

  2转变思想,微服务框架的研发历程

面对业务海量访,腾讯开始采用微服务架构的思想,设计和实现一个通用的统一应用框架平台,对业务提供涉及到开发、运维以及测试的一整套解决方案,让开发更简单,运维更高效。

Tars体系已经发展十年了,直播,整个发展历程可以分三个阶段:

第一个阶段,框架产生的阶段。目的是做以微服务为基础的分布式架构。这个时期,开发侧面对的情况如下:服务模型多样化、业务协议不统一、基础组件或框架能力参差不齐等,导致开发大部分精力关注在协议的交互、网络通信的实现、系统的容错容灾、以及服务的部署、发布、扩容等,不能聚焦业务自身的逻辑,同时跨业务团队之间的系统互通效率底下;而运营侧处于的状况:运维工具各异,部署管理凌乱,监控能力薄弱,导致系统出现问题和故障后,基本靠用户投诉才能定位和发现。

为了解决面对的这些问题,同时更好地应对在互联网/移动互联网时代下业务海量访问的发展趋势,我们设计和实现了一个通用的应用框架,它具有以下能力:

IDL(接口定义语言):统一不同语言的访问协议,二进制、可扩展、代码自动生成、支持多平台。

RPC:支持同步、异步、单向调用。

高性能:框架提供10w/s以上的吞吐量。

容错:任何一台服务down掉不影响业务访问。

伸缩性:服务可以方便的平行扩展。

管理:在web上就能对系统的服务进行部署、发布、上线、扩容、缩容等管理操作。

这便是Tars微服务架构的雏形,有了它之后,业务开发人员开始聚焦业务真正的逻辑,提高了开发效率,系统的运营管理开始简单化、规范化、流程化,提升了运维效率。

第二个阶段,框架优化重构的阶段。目的是解决框架性能和开发易用性的问题。

性能问题:以前程序大都是在2核或者4核的机器运行,而这个时期公司使用的机型在不断发展,慢慢出现了8核、16核、24核等的机器,同时系统也支持多队列网卡,由于框架是多线程模型的,同时为了保证代码良好的可读性和结构的简单性,在高性能这块,没有做太多精细的优化,线程共享资源之间粗粒度锁的使用和数据交互之间存在的内存拷贝等情况比较多,同时先前的网络收发只会被cpu0处理,导致一些对性能要求比较高的业务,在新的机型上使用框架时出现瓶颈问题,cpu和网络等资源利用不起来。

为了让框架在多核和多队列网卡的机器上充分利用资源和提供更高的性能,同时更好地为服务业务,我们对框架进行重构,原来只支持单线程的收发包模式,改造成多线程收发包,原来框架内影响线程并发运行的粗粒度锁和数据拷贝,改造成锁细粒度化或者无锁化,数据交互尽量做到零拷贝,最终框架的性能在8核机器上由19w/s提升到40w/s,cpu的最大利用率由62%提升到90%。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容