background image

 

3、PHP 开源项目多

PHP 有大量开源的项目,有各种第三方库

 

Node.js 最大的特色之一是内置了异步高性能的 Socket Server/Client 实现,在此基础上提供

了内置的

Web 服务器。PHP 里也有类似的神器,那就是 Swoole 扩展。使用 Swoole 扩展完全

可以开发出一个高性能安全稳定的服务器程序来。丝毫不逊于

Node.js,而且在某些方面比

Node.js 更强大。

 

Swoole 使 用 C 语 言 编 写 , 以 PHP 扩 展 的 方 式 来 运 行 。 Swoole 的 网 络 IO 部 分 基 于

epoll/kqueue 事件循环,是全异步非阻塞的。业务逻辑部分使用多进程同步阻塞方式来运行。

这样既保证了

Server 能够应对高并发和大量 TCP 连接。又保证业务代码仍然可以简单的编

写。

 

Swoole 对比 Node.js 的优势:

1、swoole 是原生支持多进程/多线程的

开发者只需要修改一个参数,配置下要启动多少个进程即可。而

Node.js 的网络库本身并没

有提供多进程

/多线程的实现。开发者需要自行创建进程。或者干脆使用单线程。这样无法充

分利用多核。

2、swoole 使用消息传递+多 Worker 进程,而不是多线程+共享内存+加锁

,共享内存的性能虽然很好,但存在安全问题,需要读写时加锁。锁的粒度过大会导致只有

一个线程在运行。锁太复杂又会有死锁问题。所以开发者需要非常谨慎小心。

3、swoole 的代码编写是同步,而不是嵌套异步回调