基于Swoole的通用连接池 - 数据库连接池
Swoole难上手?从EasySwoole开始
https://www.siammm.cn/SiamProjecShow/ // swoole项目 - 练习
swoole 中的锁及其应用
Swoole4 文档 // Swoole官方文档
Swoole4 文档 // Swoole官网文档 - 学习Swoole - 基础知识
Swoole4 文档 // Swoole官网文档 - 学习Swoole - 编程须知
Swoole4 文档 // 其他知识
Swoole4 文档 // Swoole文章 - 强烈推荐
Swoole微课程 // Swoole官方视频教程
GitHub - swoole/swoole-src: 🚀 Coroutine-based concurrency library for PHP //源码
韩天峰 - SegmentFault 思否 //韩天峰主页
contos7 yum安装php7.2与swoole_快乐木头人的博客-CSDN博客 //contos7 yum安装php7.2与swoole
Swoole 从入门到实战教程 | Laravel 学院 //Swoole 从入门到实战
php为什么要用swoole?-阿里云开发者社区 //php为什么要用swoole?
【swoole入门】如何快速创建一个web服务器-阿里云开发者社区 //如何快速创建一个web服务器
文章详情:// 先阅读,然后消化[删除]
最近两个月一直在研究 Swoole,那么借助这篇文章,我希望能够把 Swoole 安利给更多人。
虽然 Swoole 可能目前定位是一些高级 phper 的玩具,让中低级望而生畏,可能对一些应用场景也一脸懵逼,但其实没这么难的。
在 Swoole 官网的自我介绍是“面向生产环境的 PHP 异步网络通信引擎”,首先 Swoole 它是一个网络应用的开发工具,
它支持 Http、TCP、UDP、WebSocket。
Swoole 和我们传统的 PHP 开发差别是有的,需要理解的概念也是有的。
使用目前一些基于 Swoole 的框架开发的话,从开发习惯上和传统的TP、LV 框架相差不多。
那为什么要使用 Swoole?
我认为有以下几点:
常驻内存,避免重复加载带来的性能损耗,提升海量性能
协程异步,提高对 I/O 密集型场景并发处理能力(如:微信开发、支付、登录等)
方便地开发 Http、WebSocket、TCP、UDP 等应用,可以与硬件通信
PHP 高性能微服务架构成为现实
常驻内存
目前传统 PHP框架,在处理每个请求之前,都要做一遍加载框架文件、配置的操作。这可能已经成为性能问题的一大原因,而使用 Swoole 则没有这个问题,一次加载多次使用。
协程
如下图所示,这是同一个线程处理并发请求的场景,比如你某个接口中需要调用其它 api 接口或读写大文件,传统同步阻塞和协程异步的优势就体现了出来。
详解 Swoole 协程为什么适合 I/O 密集型场景
说到协程,就得先简单说说进程和线程,众所周知进程是很占用资源的,为了处理请求大量创建进程肯定是得不偿失的。
而多线程应用就比较多了,在 CPU 层面有几个核心就会执行几个任务,线程一旦创建的多了,就会有线程调度的损耗。
协程是在单线程基础上实现的,它可以最大限度利用 CPU 资源,而不会在等待 I/O 时白白浪费。
当然,协程数越多占用的内存也就越多,不过这个是可以接受的,相比进程和线程,占用的资源是相对较少的。
使用协程时,遇到读写文件、请求接口等场景,会自动挂起协程,把 CPU 让给其它协程执行任务,这样可以提升单线程的 CPU 资源利用率,减少浪费,从而提高性能。
20200429 周三
https://www.imiphp.com/ // PHP Swoole 协程应用开发框架
https://www.bilibili.com/video/BV1VJ411i7K5?p=1 //【11集已完结】基于 PHP + Swoole 的 imi 框架新手入门课程
Swoole - PHP 协程框架 // swool官网 - 主页有很多结合swool的项目, 可以了解学习下~~~ 20200429 周三
https://github.com/account/unverified-email // Swoole入门教程编码
...