PHP7+Swoole开发超高性能后台程序

父母在时,人生尚有来处。 父母去时,人生只剩归途。

Yaf/Phalcon

1
2
3
Yaf是一个C语言编写的PHP框架
Phalcon 是开源、全功能栈、使用 C 扩展编写、针对高性能优化的 PHP 5 框架。
开发者不需要学习和使用 C 语言的功能,可以直接使用。

QPS

1
2
3
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,
作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,
即每秒的响应请求数,也即是最大吞吐能力。

如何实现1W+的QPS

1
2
3
4
1.IO操作要足够快,或者异步
常见的IO操作有,Mysql,Redis,CURL,磁盘读写
2.CPU消耗足够少

为什么不用C++

1
2
3
4
学习成本高
开发周期长
调试难度大
机器的时间可以用钱购买,人的时间无法用钱购买

提升PHP性能

1
2
3
使用PHP7,性能至少提高一倍
使用yaf/phalcon
使用swoole应用服务器

什么是Swoole

1
2
3
4
5
6
7
PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,
提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,
异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,
毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器
端/客户端、Http2.0服务器端。Swoole可以广泛应用于互联网、移动通信、企业软件、
云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。使用PHP+Swoole作
为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。

大量并发连接

1
2
基于epool实现异步IO处理
选择Nginx和swoole

超高性能架构

1
PHP7 + swoole + yaf/phalcon + Redis

超高性能统计运算程序

1
2
3
4
5
使用PHP Array 全内存存储,计算数据,超大规模读写Redis会成为瓶颈
使用Worker/Task进程实现数据的Map-Reduce
使用PHP的SPL数据结构
中间数据可以使用mysql内存表,汇总计算后删除数据
PHP的GC非常靠谱,及时unset掉不用的数据,连续运行无内存泄露

https://github.com/ThinkDevelopers/PHPConChina/tree/master/PHPCON2016