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 的代码编写是同步,而不是嵌套异步回调