站在巨人的肩膀上,通过 Swoole 加速 Laravel/Lumen

2018-02-05 10:41:58 +08:00
 hhxsv5

背景:公司严重依赖 Laravel 和 Lumen 框架,显暴露出来了性能问题。

解决:站在巨人的肩膀上,通过 Swoole 加速 Laravel/Lumen 调研了目前已有的 Laravel+Swoole 结合方案,多多少少都有点儿问题,有的定制化太强,有的没有再维护了。于是决定再造此轮子。

成果: LaravelS https://github.com/hhxsv5/laravel-s 通过 Swoole 来加速 Laravel/Lumen,常驻内存,内置 HTTP 服务器,平滑 Reload,与 Nginx 配合搭建高可用分布式服务器群,开箱即用。

目前已经在公司生产环境用起来了,后面考虑加入连接池和协程客户端的封装。

有需求的可以尝试下,Give me star

12111 次点击
所在节点    PHP
53 条回复
hhxsv5
2018-02-05 14:11:38 +08:00
@lizhenda 也可以贡献出来👍
server
2018-02-05 14:13:35 +08:00
@lizhenda 这玩法,只能说 丧心病狂
RorschachZZZ
2018-02-05 14:29:08 +08:00
除了手册里面那几条优化办法。建议尝试下 php7+opcahce。实测如果数据库没有问题,对 laravel 有巨大的提升
hhxsv5
2018-02-05 14:32:27 +08:00
@RorschachZZZ 对,之前提到的那小伙伴做的调优记录中,opcache 提升是最明显的。
lyhiving
2018-02-05 15:02:35 +08:00
@hhxsv5 在生产环境中打开 opcache 是必须的,要不然 laravel 就是一坨屎
lizhenda
2018-02-05 15:24:31 +08:00
@server swoole 并发需要它,yaf 简单的路由加上自己魔改下支持命名空间,可以同名控制器; yii2 的 DB 和其它各种模块大家用惯了,所以也加进来了。目前稳定跑了一年多在生产环境,性能看来还是可以的。当然这只是用做 Web 服务,其它服务我们都是用 Go 来写了。
hhxsv5
2018-02-05 15:37:45 +08:00
@lizhenda 微服务这块儿基本是用 go 来写,追求性能。业务层还是 php 在搞,开发效率是杠杠的。
hhxsv5
2018-02-05 17:59:26 +08:00
补充下基于 Swoole 的一些项目,顶部⬆
wekw
2018-02-05 18:04:21 +08:00
试试 Apache ?
owenliang
2018-02-05 18:05:02 +08:00
开心就好!
mooncakejs
2018-02-05 23:56:14 +08:00
把公司项目换成 nodejs 的路过,响应时间喜滋滋
ifconfig
2018-02-06 09:54:00 +08:00
问下楼主,composer 安装和配置好之后,是不是使用 Cooperate with Nginx 那一块,就能使性能大大提高?
hhxsv5
2018-02-06 10:26:21 +08:00
@ifconfig 提速的重点是基于 swoole 的常驻进程,与 nginx 搭配是为了对多服务器做统一的反向代理、负载均衡,提高可用性。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/428497

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX