PHP的高性能异步Server框架swoole1.6发布
程序员文章站
2022-04-17 20:13:42
...
关于Swoole
Swoole是一个PHP的C扩展,可用来开发PHP的高性能高并发TCP/UDP Server。Swoole的网络IO部分基于epoll/kqueue事件循环,是全异步非阻塞的。 业务逻辑部分使用多进程同步阻塞方式来运行。这样既保证了Server能够应对高并发和大量TCP连接。又保证业务代码仍然可以简单的编写。
Swoolev1.6的主要改进
- 重写UDPServer代码,实现支持多端口的高性能UDP Server
- 增加swoole_connection_list/swoole_connection_info两个新接口,用于在worker进程内高效地遍历所有TCP连接,获取TCP连接的相关信息
- Worker进程可选IPC方式,通过configure --enable-msgqueue启用消息队列作为IPC方式
- swoole_server_send/swoole_server_close不再需要传入from_id参数
- 提供对tcp_keepalive的支持
- 增加日志模块,记录运行时的警告和错误信息
- 去掉耗时的clock_gettime调用
GitHub: https://github.com/matyhtf/swoole
文档地址: http://www4swoole.sinaapp.com/wiki.php
Swoole的性能压测报告
swoole性能接近nginx/golang。与node.js的对比中由于node.js本身是单线程的,无法利用多核.Node.js程序处理能力仅能达到swoole的1/3水平。
链接:http://www4swoole.sinaapp.com/wiki/main/63
基于Swoole扩展开发的开源项目
1、zphp一个极轻的的,专用于游戏(社交,网页,移动)的服务器端开发框架.提供高性能实时通信方案。zphp使用swoole作为底层网络通信的框架。
https://github.com/shenzhe/zphp
2、swoole_framework是基于swoole扩展,开发的PHP WebServer和框架,可以是PHP对象持久化,避免每次请求带来的对象创建/销毁消耗,性能非常好。
https://github.com/matyhtf/swoole_framework
上一篇: spring2 多数据库动态切换 案例