php swoole服务化,应用场景1:替代PHP-FPM实现高性能后端服务

[toc]

>[info] 用于替代PHP-FPM同步阻塞的模式。实现异步非阻塞高性能的web服务

## 优势

* 性能的数十倍的提升;

* 可以在`Apache`/`Nginx`等传统WEB服务器和`Swoole`之间切换部署;

* **在此模式下,还可以直接在控制器中调用`swoole/server`的方法,比如定时,任务异步投递,协程等等**

> 本例使用的是thinkphp5.1的扩展包, 本文只做实操记录与源码分析,详细内容查看 [ThinkPHP 5.1 Swoole 快速上手指南](https://www.kancloud.cn/thinkphp/think-swoole/722895)。

~~~

composer require topthink/think-swoole

# 启动

php think swoole

~~~

## 理解性能提升

原生的php-fpm是同步阻塞模式的,PHP-FPM 会创建一个主进程,控制何时以及如何将HTTP请求转发给一个或多个子进程处理。PHP-FPM主进程还控制着什么时候创建(处理Web应用更多的流量)和销毁(子进程运行时间太久或不再需要了)。

而swoole-httpserver是异步非阻塞模式的。它常驻于内存,并基于事件回调。

**我们先通过ab压测分别压测不同模式下的同一PHP程序** `这里压的是开了debug的thinkphp5.1默认页面`

~~~

// -n 2000表示总请求数为2000

// -c 100 表示并发用户数为100

// -k 使用HTTP的KeepAlive特性

ab -c 100 -n 2000 -k http://127.0.0.1:9501/

~~~

关于ab压测工具的安装与使用:[https://cloud.tencent.com/developer/article/1333772](https://cloud.tencent.com/developer/article/1333772)

**在php-fpm模式下**

![](https://i.loli.net/2019/04/12/5cb055468f405.png)

**在swoole-httpserver模式下**

!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值