TARS于“中国PHP大会”首次全面发布PHP版本

Wesley13
• 阅读 691

2018年5月19日,在上海举行的第六届中国PHP开发者大会(PHPCon)上,TARS开源项目核心开发者梁晨(Ted)对PHP如何通过TARS构建高性能RPC框架做了经验分享,并首次全面发布了TARS的PHP版本。

“现有PHP的开发生态,至少要做到功能完善、灵活、轻量和高效。 ”梁晨提道。他在分享中介绍了高性能RPC框架TARS的基本设计思想,以及通过客户端、二进制协议、服务端以及开发效率几个部分,分享了在PHP语言和框架层面的TARS解决方案TARS-PHP的设计与实现。

TARS于“中国PHP大会”首次全面发布PHP版本

在客户端方面,TARS-PHP客户端具备配置统一化、一键调用以及多种网络能力的特点。功能上支持自动寻址、主调上报、远程日志以及SOCKET、SWOOLE同步、SWOOLE协程的网络能力。同时能够根据实际的网络收发情况,进行耗时、失败率、超时率、服务端异常的及时上报,方便业务尽快发现和定位问题

在二进制协议方面,TARS-PHP通过独立PHP模块扩展完成了对二进制协议的打包解包工作,同时考虑了高性能和稳定性两个方面。通过合理设计接口并完全通过纯C语言实现,提高性能。通过引入phpt的扩展标准测试及Valgrind工具测试等,覆盖80%以上的测试代码,提升稳定性。相比于原有的纯PHP打包解包方式,该扩展将打包效率提升了12-16倍,解包效率也提升了9-14倍。

在服务端方面,TARS-PHP服务端以SWOOLE作为底层的运行环境,只需要简单配置,即可顺畅使用。除此之外,TARS-PHP服务端通过自动生成的注解进行请求的路由,开发者完全不需要关心,只需要关注于实现自己的业务逻辑即可。除了提供基本的SERVER类型之外,还提供了配置文件解析、服务保活上报、拉取下发配置、特性上报、业务代码打包整套体系,使得使用者既能够实现自己的业务逻辑,也能够针对性的进行拓展。从测试数据看,空跑的HTTP SERVER QPS最高达到了23万。而使用了协程CLIENT之后,在混合RPC调用的情况下,仍有2万1的QPS,相比于同步CLIENT,提升了50%左右。

在开发效率方面,TARS-PHP升级了全新的TARS2PHP工具,通过TARS文件和TARS2PHP工具,就能够完全实现客户端和服务端的代码生成,并且两端通过协议完全解耦,大大提高了开发效率。

他以阅文集团的实践为例,介绍TARS-PHP在阅文经过了一年多的验证和使用,目前支持十几个Node HTTP服务,40多个逻辑API层PHP服务与定时服务,以及100多个后台TCP服务,各服务之间每日亿级的调用,带来的开发、运维、性能的全面提升。

最后梁晨介绍了后续的规划,TARS-PHP会在提高稳定性的同时支持更多框架、丰富功能、再做提升。他同时呼吁更多公司和开发者加入进来一起共同建设,让TARS-PHP越来越好。

TARS于“中国PHP大会”首次全面发布PHP版本

梁晨(Ted),TARS开源项目核心开发者,曾就职于腾讯和阅文集团,负责企业QQ与QQ公众号后台开发,阅文女频后台架构负责人。腾讯开源项目TSF开发组成员,对于构建高性能WEB后台、微服务治理有丰富的经验。

腾讯开源 2018-05-19

TARS于“中国PHP大会”首次全面发布PHP版本

本文分享自微信公众号 - TARS星球(TarsCloud)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
TARS于“中国PHP大会”首次全面发布PHP版本
2018年5月19日,在上海举行的第六届中国PHP开发者大会(PHPCon)上,TARS开源项目核心开发者梁晨(Ted)对PHP如何通过TARS构建高性能RPC框架做了经验分享,并首次全面发布了TARS的PHP版本。“现有PHP的开发生态,至少要做到功能完善、灵活、轻量和高效。 ”梁晨提道。他在分享中介绍了高性能RPC框架TARS的基本设计思想,
Wesley13 Wesley13
3年前
TarsPHP 新版本发布,支持 Protobuf 协议
!(https://static.oschina.net/uploads/space/2020/0702/162528_DudP_4021301.jpg)作者丨张勇编辑丨TARS小助手TARS是腾讯从2008年到今天一直在使用的微服务开发框架,2018年成为Linux基金会开源项目目前支持PHP、C、Java、Nodejs与Go语
Easter79 Easter79
3年前
TarsGo支持Protocol Buffer
Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架TAF(TotalApplicationFramework),目前支持C,Java,PHP,Nodejs,Golang语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速开发、部署、测试、上线。它集可扩展协议编解码、高性能RPC通信框架、名字路
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
TarsGo新版本发布,支持protobuf,zipkin和自定义插件
Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架,目前支持C,Java,PHP,Nodejs,Golang语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速开发、部署、测试、上线。它集可扩展协议编解码、高性能RPC通信框架、名字路由与发现、发布监控、日志统计、配置管理等于一体,通过它可以快速用
Wesley13 Wesley13
3年前
TarsGo支持Protocol Buffer
Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架TAF(TotalApplicationFramework),目前支持C,Java,PHP,Nodejs,Golang语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速开发、部署、测试、上线。它集可扩展协议编解码、高性能RPC通信框架、名字路
Wesley13 Wesley13
3年前
TARS:Linux基金会新一代海量服务开发框架
_本文来源:__开源中国__原文标题:__Linux基金会执行董事眼中的海量服务之道_在今年的美国加州圣迭戈开源峰会上,Linux基金会执行董事JimZemlin做了主题演讲。他把由腾讯主导开源并捐献给Linux基金会的微服务RPC框架TARS定义为“Newwaystoscale”,一种海量服务之道。与TARS一起在主题
Easter79 Easter79
3年前
TarsGo新版本发布,支持protobuf,zipkin和自定义插件
Tars是腾讯从2008年到今天一直在使用的后台逻辑层的统一应用框架,目前支持C,Java,PHP,Nodejs,Golang语言。该框架为用户提供了涉及到开发、运维、以及测试的一整套解决方案,帮助一个产品或者服务快速开发、部署、测试、上线。它集可扩展协议编解码、高性能RPC通信框架、名字路由与发现、发布监控、日志统计、配置管理等于一体,通过它可以快速用