Swoole 学习指南

Swoole究竟是个什么东西?

做者:韩天峰解答(资深PHP程序员,Swoole开源项目创始人,PHP官方扩展开发组成员。)

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

但你们黑了PHP半天,才发现PHP最近这几年反而愈来愈流行了,PHPer们的工资可一点都不低。就拿我司来讲吧,以前面过一个PHP程序员工做三年多,水平通常吧,后来公司开价2万/m收了。web

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

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

用swoole能够作什么?

用户打开了咱们的网站。他要作的就是勾选须要发邮件的代理商列表,而后把结算邮件发出去。bash

假如咱们须要发1封邮件,咱们写个函数执行便可。考虑到网络可能会稍微有点延迟,可是是能够接受的,用户会乖乖等你的网页发完邮件了再关闭网页。服务器

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

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

但实际上,咱们极可能有超过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高级详解教程,多谢支持
复制代码
相关文章
相关标签/搜索