nodejs能够应用于什么场景-亚博电竞手机版

这篇文章给大家分享的是有关nodejs能够应用于什么场景的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

apache 的多线程高并发模式

优点:支持多线程并发

缺点:阻塞

什么是线程

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

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

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

nodejs 的异步 i/o 原理

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

缺点:

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

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

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

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

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

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

nodejs 它的所有 i/o、网络通信等比较耗时的操作,都可以交给 worker threads 执行再回调,所以很快。但 cpu 的正常操作,它只能自己操作。

类似场景:排队点餐后叫号取餐。

nodejs 的应用场景

nodejs 处理并发的能力强,但处理计算和逻辑的能力反而很弱。

因此,我们把复杂的逻辑运算搬到前端(客户端)完成,而 nodejs 只需要提供异步 i/o,这样就可以实现对高并发的高性能处理。

restful api

这是 nodejs 最理想的应用场景,可以处理数万条连接,本身没有太多的逻辑,只需要请求 api,组织数据进行返回即可。

它本质上只是从某个数据库中查找一些值并将它们组成一个响应。

由于响应是少量文本,入站请求也是少量的文本,因此流量不高,一台机器甚至也可以处理最繁忙的公司的 api 需求。

大量 ajax 请求的应用

实时聊天、客户端逻辑强大的单页 app,具体的例子比如说:本地化的在线音乐应用,本地化的在线搜索应用,本地化的在线 app 等。

apache 适用场景

apache 由于其多线程高并发共享内存地址空间的特性,那就意味着如果服务器足够强大,处理器足够高核,apache 的运作将会非常良好,所以适用于(并发)异步处理相对较少,后台计算量大,后台业务逻辑复杂的应用程序。

感谢各位的阅读!关于“nodejs能够应用于什么场景”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

展开全文
内容来源于互联网和用户投稿,文章中一旦含有亚博电竞手机版的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系亚博电竞手机版删除

最新文章

网站地图