Swoole使用场景及代码实现

Swoole使用场景及代码实现

  • 可用于对laravel项目速度优化
  • 借助swoole的异步,无阻塞快速消费MQ

可用于对laravel项目速度优化

基于swoole的特性,有一些作者就开发组件试图将swoole的特性和laravel结合,以提升laravel项目的访问速度和承载能力。

首先看一下原生laravel的压力测试情况:

下载了一个5.8版本的laravel框架,在Test控制器的index方法输出字符串Hello World

jun@zhangjunshengdeMacBook-Pro ~ % wrk -t4 -c100 http://www.**.com/
Running 10s test @ http://www.**.com/
  4 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.21s   212.04ms   1.85s    84.74%
    Req/Sec    20.62     11.35    60.00     63.77%
  780 requests in 10.06s, 182.81KB read
Requests/sec:     77.52
Transfer/sec:     18.17KB

平均每秒请求77.52次。

然后试一下使用laravel-swoole这个组件,借助swoole的优势,提升laravel项目的承载能力。
首先在项目根目录启动swoole的http服务:php artisan swoole:http start
然后nginx配置一下代理:

location ~ {
	proxy_redirect off;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_pass http://127.0.0.1:1215;
}

确认访问域名后nginx转发给了swoole之后,再次进行压力测试。

jun@zhangjunshengdeMacBook-Pro ~ % wrk -t4 -c100 http://www.**.com/
Running 10s test @ http://www.**.com/
 4 threads and 100 connections
 Thread Stats   Avg      Stdev     Max   +/- Stdev
   Latency   320.76ms  395.42ms   1.73s    78.16%
   Req/Sec   146.82    143.99     0.88k    87.04%
 4897 requests in 10.10s, 4.19MB read
 Socket errors: connect 0, read 0, write 0, timeout 45
Requests/sec:    484.92
Transfer/sec:    425.14KB

平均每秒请求达到了484.92次。

借助swoole的异步,无阻塞快速消费MQ

TODO

你可能感兴趣的:(PHP,swoole使用场景)