本篇文章给大家介绍一些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 它的所有 I/O、网络通信等比较耗时的操作,都可以交给 worker threads 执行再回调,所以很快。但 CPU 的正常操作,它只能自己操作。
类似场景:排队点餐后叫号取餐。
NodeJS 的应用场景
NodeJS 处理并发的能力强,但处理计算和逻辑的能力反而很弱。
因此,我们把复杂的逻辑运算搬到前端(客户端)完成,而 NodeJS 只需要提供异步 I/O,这样就可以实现对高并发的高性能处理。
RESTful API
这是 NodeJS 最理想的应用场景,可以处理数万条连接,本身没有太多的逻辑,只需要请求 API,组织数据进行返回即可。
它本质上只是从某个数据库中查找一些值并将它们组成一个响应。
由于响应是少量文本,入站请求也是少量的文本,因此流量不高,一台机器甚至也可以处理最繁忙的公司的 API 需求。
大量 Ajax 请求的应用
实时聊天、客户端逻辑强大的单页 APP,具体的例子比如说:本地化的在线音乐应用,本地化的在线搜索应用,本地化的在线 APP 等。
Apache 适用场景
Apache 由于其多线程高并发共享内存地址空间的特性,那就意味着如果服务器足够强大,处理器足够高核,Apache 的运作将会非常良好,所以适用于(并发)异步处理相对较少,后台计算量大,后台业务逻辑复杂的应用程序。
更多编程相关知识,请访问:编程视频!!
以上是Nodejs可以应用于那些场景?的详细内容。更多信息请关注PHP中文网其他相关文章!

Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!

gm是基于node.js的图片处理插件,它封装了图片处理工具GraphicsMagick(GM)和ImageMagick(IM),可使用spawn的方式调用。gm插件不是node默认安装的,需执行“npm install gm -S”进行安装才可使用。

今天跟大家介绍一个最新开源的 javaScript 运行时:Bun.js。比 Node.js 快三倍,新 JavaScript 运行时 Bun 火了!

在nodejs中,lts是长期支持的意思,是“Long Time Support”的缩写;Node有奇数版本和偶数版本两条发布流程线,当一个奇数版本发布后,最近的一个偶数版本会立即进入LTS维护计划,一直持续18个月,在之后会有12个月的延长维护期,lts期间可以支持“bug fix”变更。

大家都知道 Node.js 是单线程的,却不知它也提供了多进(线)程模块来加速处理一些特殊任务,本文便带领大家了解下 Node.js 的多进(线)程,希望对大家有所帮助!

node怎么爬取数据?下面本篇文章给大家分享一个node爬虫实例,聊聊利用node抓取小说章节的方法,希望对大家有所帮助!


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。