编程学习网 > PHP技术 > swoole > swoole教程分享——韩天峰解答swoole学习指南
2021
07-08

swoole教程分享——韩天峰解答swoole学习指南

一直以来在其他编程语言程序员心目中PHP就是个套HTML页面的。所谓PHP程序员就是搞WordPress、discuz二次开发,一个月拿三五千的loser,和我大Java工程师相比简直low爆了。

但大家黑了PHP半天,才发现PHP最近这几年反而越来越流行了,PHPer们的工资可一点都不低。就拿我司来说吧,之前面过一个PHP程序员工作三年多,水平一般吧,后来公司开价2万/m收了。

水平好一点的平均都在3-4万/m。实际上作为一名PHP程序员,我很清楚PHP的确有很多局限性,比如Unix系统编程、网络通信编程、异步io,大部分PHPer不懂。

PHP界也确实没有这样的东西。swoole开源项目就是为了弥补PHP在这些方面的缺陷诞生的。与WordPress这些产品不同,swoole实际上是一个网络通信和异步io的引擎,一个基础库。PHPer可以基于swoole去实现过去PHP无法实现的功能。swoole为PHPer打开了通往另一个世界的大门。



用swoole可以做什么?

用户打开了我们的网站。他要做的就是勾选需要发邮件的代理商列表,然后把结算邮件发出去。

假如我们需要发1封邮件,我们写个函数执行即可。考虑到网络可能会稍微有点延迟,但是是可以接受的,用户会乖乖等你的网页发完邮件了再关闭网页。

假如我们要发布10封邮件,用一个for循环,循环10遍执行发邮件操作。这时候,也许10倍的网络延迟会让用户稍微有点不耐烦,但勉强可以等吧。

假如要发1000封邮件,for循环1000遍,用户直接揭竿而起,什么破网站!

但实际上,我们很可能有超过2万的邮件。怎么处理这个延迟的问题?

答案就是用异步。把“发邮件”这个操作封装,然后后台异步地执行1万遍。这样的话,用户提交网页后,他所等待的时间只是“把发邮件任务请求推送进队列里”的时间。而我们的后台服务将在用户看不见的地方跑。而swoole就为我们实现了异步队列处理及并发等问题。


Swoole需要掌握哪些基础?


多进程/多线程

了解Linux操作系统进程和线程的概念

了解Linux进程/线程切换调度的基本知识

了解进程间通信的基本知识,如管道、UnixSocket、消息队列、共享内存



SOCKET

了解SOCKET的基本操作如accept/connect、send/recv、close、listen、bind

了解SOCKET的接收缓存区、发送缓存区、阻塞/非阻塞、超时等概念



IO复用

了解select/poll/epoll

了解基于select/epoll实现的事件循环,Reactor模型

了解可读事件、可写事件



TCP/IP网络协议

了解TCP/IP协议

了解TCP、UDP传输协议



调试工具

使用 gdb 调试Linux程序

使用 strace 跟踪进程的系统调用

使用 tcpdump 跟踪网络通信过程

其他Linux系统工具,如ps、lsof、top、vmstat、netstat、sar、ss等


swoole高级讲解


安装篇

源码安装Swoole

源码安装PHP7

让PHP支持Swoole


基础篇

网络通信引擎

Tcp服务/客户端

websocket服务器

进阶篇

异步MySQL场景

处理异步实时日志

高性能消息队列

异步任务task

进程、内存、协程


以上就是“swoole教程分享——韩天峰解答swoole学习指南”的详细内容,想要了解更多swoole教程欢迎关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取