同时,在实际开发的层面上,PHP逻辑层与后台服务之间通信协议的维护成本较高。同时,后台服务侧新增或修改接口字段,往往调用侧也要配合修改,很多时候无法保证接口的完全兼容而引发线上的运营问题。因此,这种二进制协议又要做到接口方便维护,同时又容易扩展。
除此之外,从开发效率上而言,原本的开发中总是包含大量的重复的,但又不得不去做的工作内容。因为每一次新协议的开发,代码很难复用,JSON和XML也并不允许你共用部分数据。同时一个很现实的问题是,不同HTTP接口的提供方,往往会视自己的心情和习惯来定义接口。
一个常见的例子就是对返回码的定义,有些人叫ret,有些人叫code,还有些人就叫r,简直是无所不包。因此这类重复无趣的开发工作,给调用方的开发同学带来了极大的生理和心理负担。基于这种需求,一种服务端和客户端都能够根据协议和接口自动生成调用代码,保证联调通畅的解决方案必不可少。
再者,调用方对后端服务的发现和调用的上报与监控,也是一个老生常谈的问题。后端服务如何被发现,后端的接口如何被发现,这都是调用方真真切切想知道的。同时,调用方非常有必要对后端服务的调用情况进行上报到中央服务器,中央服务器再根据收集上来的信息,对后端服务的负载进行动态的调整,保证服务的高可用。要实现这样的需求,必须引入一种集成了监控、主控寻址、上报通道、负载均衡功能的解决方案。
Tars作为腾讯公司的优秀RPC框架与服务部署运维解决方案,可以满足上述的所有需求。通过引入Tars-PHP的全套解决方案,开发者既可以使用二进制的Tars协议,大大压缩了服务请求的流量。同时也能够借助Tars协议解析的PHP扩展,提高了打包解包的性能进而提升了单进程的任务处理能力。再次,自动生成代码的工具也能够提升开发者的效率。