Swoole学习-Swoole⼊门指南
初识Swoole
Swoole官⽹:www.swoole/
Swoole官⽅⽂档:wiki.swoole/
预备相关知识素材推荐
⼊门书籍:《tcp/ip⽹络编程(尹圣⾬韩)》。
深⼊书籍:《unix环境⾼级编程(中⽂第三版)》;《unix⽹络编程卷1:套接字联⽹》;《unix⽹络编程卷2:进程间通信》。版本
已更新⾄4.3.x。swoole2.0增加协程。swoole3.0以上版本要求php>=7.0。
开发辅助⼯具
Swoole 4.X速查表:toxmc.github.io/swoole-cs.github.io/
ide提⽰⼯具:github/swoole/ide-helper
这2个⼯具挺实⽤的,截图如下:
IDE helper包下载后放进任意⽬录,然后IDE include path即可。
Swoole⼊门指引
swoole底层是C写的。swoole系列函数可以理解为swoole提供给php的api,php通过swoole系列函数调⽤swoole的api,来启动swoole服务、注册回调函数等,swoole的事件驱动来执⾏对应的回调函数。这完全区别于普通的php扩展只提供库函数,⽽对于swoole,php只是传递的作⽤,真正的程序控制权是swoole。
学习swoole的基础知识
linux是必须的。学习swoole需要对进程、线程、异步同步、IO复⽤、reactor模型、进程间通讯、信号等概念有所了解,可学习《tcp/ip⽹络编程》这本书做简单的理解,通过php对应的扩展,借鉴workman源码来理解机制,这样会对swoole的学习有很⼤帮助。
swoole并没有⽤libevent,所以不需要安装libevent。swoole并不依赖php的stream/sockets/pcntl/posix/sysvmsg等扩展
libevent是⼀个事件驱动库,php有对应的event扩展,可帮助理解swoole的io复⽤和事件机制。
stream/sockets是⽹络通讯的⼯具、可帮助理解swoole的tcp/udp/http。
pcntl/posix是进程控制扩展,可帮助理解swoole中的多进程、进程间通讯。
sysvmsg消息队列,可帮助理解swoole中的task模块。
Swoole提供的功能库
swoole提供了哪些功能给我们⽤,以为我们⽤到哪些服务时,可以⽤swoole来帮我们实现。
http服务,编写⼀个简单的web server。
TCP/UDP服务,编写⼀个消息接受处理系统。
异步,可以异步的处理请求。
并发,可以并发的处理同⼀个业务逻辑。
socket,socket通讯处理技术。
毫秒级别定时器,可以在php中使⽤定时器了。
协程,相⽐线程更稳定和好⽤。
如果你的业务中,有⽤到以上等特性,你⼜在⽤使⽤php,那么完全可以⽤swoole来完成了,再具体点的场景如下:
1、互联⽹;
2、移动通信;
3、企业软件;
4、云计算;
5、⽹络游戏;
6、物联⽹(IOT);中文版php开发工具
7、车联⽹;
8、智能家居等领域Swoole的框架
Swoft ⾸个基于 Swoole 原⽣协程的新时代 PHP ⾼性能协程全栈框架,内置协程⽹络服务器及常⽤的协程客户端,常驻内存,不依赖传统的 PHP-FPM,全异步⾮阻塞 IO 实现,以类似于同步客户端的写法实现异步客户端的使⽤,没有复杂的异步回调,没有繁琐的 yield, 有类似 Go 语⾔的协程、灵活的注解、强⼤的全局依赖注⼊容器、完善的服务治理、灵活强⼤的 AOP、标准的 PSR 规范实现等等,可以⽤于构建⾼性能的Web系统、API、中间件、基础服务等等。
EasySwoole EasySwoole 是⼀款基于Swoole Server 开发的常驻内存型PHP框架,专为API⽽⽣,摆脱传统PHP运⾏模式在进程唤起和⽂件加载上带来的性能损失。EasySwoole ⾼度封装了Swoole Server ⽽依旧维持Swoole Server 原有特性,⽀持同时混合监听HTTP、⾃定义TCP、UDP协议,让开发者以最低的学习成本和精⼒编写出多进程,可异步,⾼可⽤的应⽤服务。
SwooleDistributed SwooleDistributed ⽼牌Swoole框架拥有最完善的开发⼯具以及最强⼤的功能,⾸创SDHelper开发者⼯具包和开发者调试命令集,可以进⾏单元测试,捕获客户端流量分析,可视化的进⾏远程断点联调,还具备代码覆盖率检测的功能(swoole与xdebug 扩展不兼容,SDHelper⽆需xdebug扩展),并且内置组件极其丰富(类MQTT强悍的订阅发布/Actor模型/内存⾼速缓存/事件派发/进程管理/定时任务/AMQP任务调度/后台监控/集/微服务/RPC/异步连接池/⾃定义命令等等),开发
者可以直接使⽤加快开发进度。⼏乎所有的功能都⽀持集化,单机切换到集⽆需对代码做任何的修改。如果业务开发⽐较复杂⽐如(游戏开发)那么SD框架将是你的不⼆之选。
swoole进程结构
Master主进程manager管理进程worker⼦进程
task任务进程MainReactor主线程reactor线程组Swoole的进程/线程模型
Swoole程序的执⾏流程
原⽂链接:blog.csdn/yan_dk/java/article/details/89445254

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。