Nodejs可以应用于那些场景?


本文摘自PHP中文网,作者青灯夜游,侵删。

本篇文章给大家介绍一些Nodejs的应用场景。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

Apache 的多线程高并发模式

优点:支持多线程并发

缺点:阻塞

什么是线程

线程是可以独立运行的最小的 CPU 单位,可以在同一个进程里并发运行,共享该进程下的内存地址空间。

当不同的线程需要占用同一个变量时,根据先到先得的原则,先到的线程在运作时,后来的线程只能在旁边等待,也就是加入到了阻塞排队序列。就造成了线程阻塞。

类似场景:银行柜台办理业务

NodeJS 的异步 I/O 原理

优点:高并发(最重要的优点)、适合 I/O 密集型应用

缺点:

  • 不适合CPU密集型应用(CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的计算(比如大循环),将会导致 CPU 时间片不能释放,使得后续 I/O 无法发起)

  • 只支持单核CPU,不能充分利用CPU

  • 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃
    原因:单进程、单线程
    解决方案:
    (1)Nnigx 反向代理,负载均衡,开多个进程,绑定多个端口;
    (2)开多个进程监听同一个端口,使用cluster模块
    (3)线上使用 PM2 管理进程,出现问题自动重启项目

  • Debug 不方便,错误没有 stack trace

NodeJS 基于事件循环,每一条 NodeJS 的逻辑写在回调函数里面,回调函数在返回之后异步执行。【推荐学习:《nodejs 教程》】

NodeJS 不是没有阻塞,而是阻塞不发生在后续回调的流程,而会发生在 NodeJS 本身对逻辑的计算和处理。

阅读剩余部分

相关阅读 >>

深入了解nodejs中的mongoose工具

nodejs怎么实现下载excel文件功能?

node.js安装和配置环境以及部署项目的方法介绍(windows系统下)

浅谈nodejs如何进行多线程处理

深入浅析nodejs里的koa-static中间件

nodejs是js框架么?

浅谈nodejs中的callback回调

3个值得收藏的实用nodejs软件包

nodejs是什么?

nodejs怎么创建文件并写入

更多相关阅读请进入《nodejs》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...