yaf整合swoole开发web应用

背景

公司的主要技术栈有php,golang,lua。php开发效率高,出活快主要服务于业务。golang由于稳定,并发性好,房间服务,长链服务都基于此。lua用于图床,抽奖等服务。phper都希望在开发效率高的情况下,服务性能也高些。公司发展前期php项目采用pylon框架(奇虎一位大神开发的php扩展),php7的出现,性能提升2倍,开发同学直接考虑到升级php,但pylon对php兼容不好。还有pylon本身难度比较大,新人上手速度慢。最后迁到了PHP7+yaf。但与golang项目相比还是差很多,以下数据是同事在测试环境下压测的结果,可供参考:

空跑是golang的25%

读redis性能是golang的30%

curl是golang的29%

so,我们希望还是尽可能的提高性能

调研项目

1.swoole扩展:普通的扩展只是提供一个库函数。而swoole扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。也就是基于swoole开发不再依赖于php-fpm,这个是与其他PHP扩展不一样的地方。swoole功能强大(可参考官方说明),但是直接开发项目成本太大。

2.easyswoole:基于swoole封装的PHP框架,性能高,但项目在发展初期,代码也不太规范(后面作者开始2.0开发)。考虑到稳定,忍痛放弃。

改造

1.mvc功能

yaf扩展实现了一个完整的mvc框架。接受请求,路由分发,逻辑执行,响应请求。而swoole在不同进程中都提供了事件接口,开发者根据需要实现对应事件处理方法即可,必须业务逻辑可在request事件中实现。

相比yaf,swoole_


转载请注明:http://www.guyukameng.com/html/html1/12406.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了