学习使用swoole之前,先来简单了解swoole。
swoole是php的拓展,使用c/c++语言编写。是一个网络通信和异步io的引擎,一个基础库。提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。可以方便快速的实现 TCP/UDP服务
、高性能Web
、WebSocket服务
、物联网
、实时通讯
、游戏
、微服务
等,使 PHP
不再局限于传统的 Web 领域。
相比较其他引擎,swoole的优势又有哪些呢?(划重点,以后要考的,兄弟)
1、常驻内存。
传统 PHP框架或者单文件,在处理每个请求之前,都要做一遍加载框架文件、配置的操作,请求完成之后会释放所有资源和内存,无须担心内存泄漏。但是如果请求数量上升,并发很高的时候,快速创建资源,又马上释放,会导致 PHP 程序运行效率急剧下降。而使用 Swoole 则没有这个问题:PHP的代码加载到内存后,拥有更长的生命周期,这样建立的数据库连接和其他大的对象,不被释放。每次请求只需要处理很少的代码,而这些代码只在第一次运行时,被 PHP 解析器编译,驻留内存。以后都是直接载入 OPCODE ,让 Zend 引擎直接运行。
另外,之前PHP不能实现的,如数据库连接池,缓存连接池都可以在Swoole引擎下实现。系统的运行效率会大大提高。
2、协程异步。
提高对 I/O 密集型场景并发处理能力(如:微信开发、支付、登录等)。Swoole4可以使用完全同步的代码实现异步程序。PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步IO。
3、快速开发
Swoole引擎提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。
Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。我们不必花太多时间去实现这些功能的封装,直接调用即可。
4、PHP高性能微服务架构成为现实。