前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Node.js能解决什么问题?

Node.js能解决什么问题?

作者头像
雪山飞猪
发布2019-08-29 14:26:05
1.1K0
发布2019-08-29 14:26:05
举报
文章被收录于专栏:雪山飞猪雪山飞猪

一、使用Node.js能解决什么问题

对于PHP、JAVA、Python等服务端语言中,为每个客户端连接创建一个新的线程,而每个线程需要大约2M的内存,理论上,具有8GB内存的服务器可以同时连接的最大用户数为4000个左右,要让Web应用程序支持更多的用户,就需要增加服务器的数量,这样硬件的成本就增加了。 服务器所支持的最大同时连接用户量是一个主要的瓶颈。

Node.js是一个用于开发各种Web服务器的开发工具,运行的是高性能的V8 JavaScript脚本语言, 什么是V8JavaScript? V8 JavaScript是由Google公司使用C++语言开发的一种高性能JavaScript,该引擎并不局限于在浏览器中运行。在V8引擎内部使用了一种全新的编译技术,高端的JavaScript脚本代码与开发者编写的低端的C语言具有非常相似的执行效率

二、Node.js的两种机制

  1. 非阻塞型I/O JavaScript的一个特点是它只支持单线程,因此不需要担心会造成死锁的现象。 与客户端脚本语言不同的是,Node.js中为V8 JavaScript提供了非阻塞型I/O机制。 例如,在访问数据库取得搜索结果的时候,在开始访问数据库之后、数据库返回结果之前,存在一段时间的等待。 在传统的单线程处理机制中,在执行了访问数据库的代码之后,整个线程都将暂停下来,等待数据库返回查询结果之后才能继续执行其后面的代码。也就是I/O操作阻塞了代码的执行,极大的降低了程序的执行效率。 由于Node.js中采用了非阻塞型I/O机制,因此在执行访问数据库的代码之后将立即转而执行其后面的代码,把数据库返回结果的处理代码放在回调函数中执行,从而提高了程序的执行效率。
  2. 事件环 在Node.js中,在一个时刻只能执行一个事件回调函数,但是在执行一个事件回调函数的中途可以转而执行其他事件,然后返回继续执行原事件回调函数,这种处理机制叫事件环机制

三、Node.js适合什么开发场景?

当应用程序需要处理大量并发的输入/输出,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候

  1. 聊天服务器 在一个人气很高的聊天应用程序中,在同一时刻通常可能存在大量用户与聊天服务器之间的并发连接,而服务器本身并不存在非常复杂的处理
  2. 综合服务类网站 、电子商务网站的服务器 这类网站中,往往可能在每秒钟内接收到多达上千条数据并且需要将这些数据写到数据库中,如果使用其他的服务器(Apache或Tomcat),需要为每条数据的写入等待一段时间。而Node.js将通过其队列机制将这些数据迅速写到缓存区中,再通过每一个单独的处理从缓存中取出这些数据再写到数据库中,因为其使用的是非阻塞型的I/O机制,因此可以同时实现这些数据到数据库中的写入,而不必为每条数据等待一段时间
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、使用Node.js能解决什么问题
  • 二、Node.js的两种机制
  • 三、Node.js适合什么开发场景?
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档