Nodejs可以应用于那些场景?

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

Nodejs可以应用于那些场景?

nodejsApache 的多线程高并发模式

优点:支持多线程并发

缺点:阻塞

nodejs什么是线程

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

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

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

nodejsNodeJS 的异步 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 的正常操作,它只能自己操作。

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

nodejsNodeJS 的应用场景

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

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

nodejsRESTful API

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

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

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

nodejs大量 Ajax 请求的应用

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

nodejsApache 适用场景

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

更多编程相关知识,请访问:nodejs!!

以上就是Nodejs可以应用于那些场景?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2712723.html

(0)
上一篇 2025年3月7日 21:16:00
下一篇 2025年2月25日 00:20:48

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 详解使用Docker给nodejs程序打包的方法

    本篇文章带大家了解一下docker,介绍为什么要使用 docker?如何使用 docker?以及使用docker给nodejs程序打包的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 你听到过这样的对话吗? 这种对话…

    2025年3月7日 编程技术
    200
  • 浅谈Nodejs如何进行多线程处理

    本篇文章给大家介绍一下nodejs进行多线程处理的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Threads à gogo 是nodejs 的原生模块,使用这个模块可以让nodejs 具备多线程处理功能。【推荐学…

    2025年3月7日
    200
  • 深入了解Nodejs中的mongoose工具

    本篇文章给大家详细介绍一下nodejs mongoose。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Mongoose 是在nodejs环境下,对mongodb进行便捷操作的对象模型工具。本文介绍解(翻)密(译)Mon…

    2025年3月7日
    200
  • 使用Nodejs如何实现一个简单的石头剪刀布小游戏

    本篇文章给大家介绍一下使用node.js做一个简单的石头剪刀布小游戏的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 初步了解了 Node.js 的模块、异步、HTTP 服务等知识点之后,就来做一个简单的石头剪刀布的…

    2025年3月7日 编程技术
    200
  • node.js和javascript区别是什么

    node.js和javascript区别是:JavaScript是一门编程语言(脚本语言),而Node.js是一个平台,可以简单理解为它是JavaScrip的一种独立于浏览器的运行环境。 本教程操作环境:windows7系统、javascr…

    2025年3月7日
    200
  • 深入了解Node.js中的Express框架

    本篇文章给大家详细介绍一下node.js中的express框架。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 很多语言都有一些框架,这些框架可以帮助我们更加快捷地开发以及维护项目,像 JS 就有 Vue、React、An…

    2025年3月7日
    200
  • nodejs如何导入模块?require的执行过程介绍

    本篇文章给大家详细介绍一下nodejs中require的执行过程。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 最近在看node,所以就特意了解了下,它模块引入的过程。今天做个回顾记录,希望对正在阅读的你也有所帮助 no…

    2025年3月7日 编程技术
    200
  • 浅谈Nodejs中的可写流write与实现方法

    本篇文章带大家了解一下nodejs中的可写流write,介绍一下node可写流write的实现。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 【推荐学习:《nodejs》】 可写流-Writable fs.createW…

    2025年3月7日 编程技术
    200
  • 浅谈Nodejs文件模块中的fs.mkdir和fs.rmdir

    本篇文章带大家了解一下nodejs文件操作fs.mkdir和fs.rmdir。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 【推荐学习:《nodejs》】 fs.mkdir文件目录新增 案例使用 逐级新增目录 会成功打印…

    2025年3月7日 编程技术
    200
  • 浅谈Nodejs中的多线程操作

    虽说nodejs是单线程的,但是它还是容许多线程操作,下面本篇文章给大家从 node 线程说起,谈谈nodejs中的多线程操作,介绍一下worker_threads模板。 本文测试使用环境:系统:macOS Mojave 10.14.2CP…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论