Node.js能解决什么问题?

一、使用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机制,因此可以同时实现这些数据到数据库中的写入,而不必为每条数据等待一段时间

原文地址:https://www.cnblogs.com/chenqionghe/p/11374483.html

时间: 2024-10-09 06:09:59

Node.js能解决什么问题?的相关文章

第一节:Node.js简介

1.什么是Node.js? Node.js是一个用于开发各种Web服务器的开发工具,仔Node.js服务器中,运行的高性能V8 JavaScript脚本语言,该语言是一种可以运行仔服务器端的JavaScript脚本语言.它为了提高性能,采用了以下两种机制:非阻塞型I/O和事件环,由于采用了非阻塞型I/O,所以在执行了访问数据库的代码后将立即转而执行其后的代码,把数据库返回结果的处理代码放在回掉函数中执行,从而提高了程序的执行效率,在Node.js中,在一个时刻只能执行一个事件回掉函数,但是在执行

Node.js综述

前言 本综述文章旨在帮助读者深入理解下Node.js的本质,不去关注应用的细节,我认为真正的技术问题只有在动手写代码的时候才会遇到,那个阶段解决问题才是真正有意义的. 发展史 Node.js是Ryan Dahl 2009年对外发布的开源醒目,后来该项目被Joyent公司注意到并于2010年成为Joyent公司的一个子项目.2016年微软与Joyent公司合作,Node.js在windows上得到支持. 目前Node.js的版本为V6.11,周围已经形成了一个庞大的生态系统. 特性分析 Node.

node.js在windows下的学习笔记(4)---同步,异步,回调的概念

Node.js是使用事件驱动的,非阻塞的I/O模型,用于构建快速的,可扩展的网络应用程序. Node.js想解决的问题是:处理输入,输入,高并发 1.阻塞与非阻塞 阻塞也叫同步,是指每一次执行一个操作,在这个操作完成之前,代码的执行会被阻塞,无法移到下一个操作上. 阻塞就相当于你在超市里面买东西,结账,在排队,如果前面的人没买单,你就不能买,一定要等前面的人先执行完其操作才可以 非阻塞就相当于你在外婆家取号,然后就可以去干别的事情了,等轮到我们的时候,短信发到我们的手机上了,说轮到我们了,这样我

node.js的作用、回调、同步异步代码、事件循环

http://www.nodeclass.com/articles/39274 一.node.js的作用 I/O的意义,(I/O是输入/输出的简写,如:键盘敲入文本,输入,屏幕上看到文本显示输出.鼠标移动,在屏幕上看到鼠标的移动.终端的输入,和看到的输出.等等) node.js想解决的问题,(处理输入,输入,高并发 .如 在线游戏中可能会有上百万个游戏者,则有上百万的输入等等)(node.js适合的范畴:当应用程序需要在网络上发送和接收数据时Node.js最为适合.这可能是第三方的API,联网设

Node.js具体解析

介绍 JavaScript 高涨的人气带来了非常多变化.以至于现在使用其进行网络开发的形式也变得截然不同了.就如同在浏览器中一样,现在我们也能够在server上执行 JavaScript ,从前端跨越到后端,这样巨大的反差让人难以想象.由于只在几年前 Javascript 还如同 Flash 或者 Java applet 那样嵌入网页在沙箱环境中执行. 在深入Node.js之前.你可能须要阅读和了解使用跨栈式JavaScript(JavaScript across the stack)带来的优点

Node.js概述

1.Node.js能够解决什么问题? Node.js不为每个客户端连接创建一个新的线程,而是为每个客户端连接触发一个在Node.js内部进行处理的事件.因此,能够解决高并发访问的效率问题. [析]在Java/PHP等服务器端语言中,为每个客户端请求创建一个线程,每个线程耗费月2M,8G内存最大并发4000个,而Node.js可同时处理多达几万个客户端的连接.因此,当需要使用Web应用程序能够支持大量用户的并发连接的时候,应该考虑使用Node.js. 2.使Node.js具备高性能的两种机制:非阻

node.js(一)介绍与安装

开始node.js的学习之路.我是一个node菜鸟,总结自己的学习过程,和大家一起学习,有什么不对的地方,还请指正! 1.为什么使用node.js? node.js的首要目标是提供一种简单.用于创建高性能服务器及可在该服务器中运行的各种应用程序的开发工具.node.js的优势在于实现里高性能服务器,采用非阻塞型I/O及事件环机制.严格地讲,node.js是一个用于开发各种web服务器的开发工具.在node.js服务器中,运行的是高性能V8 javascript脚本语言,该语言是一种可以运行在服务

Node.JS + MongoDB技术浅谈

看到一个Node.JS + MongoDB的小样例,分享给大家.魔乐科技软件学院(www.mldnjava.cn)的讲座 Node.JS + MongoDB技术讲座          云计算 +大数据 = 未来. 在中国的云计算上基本上是一个概念,个人感觉与当初的SOA没有太大的差别,空泛的理论. 中小型开发的未来 = Node.JS + MongoDB解决,并非说Java就没用了. 1.在前面的话 Java技术始终作为高端软件用户的首选,仅仅要从事大型的软件开发,那么Java都是必需要使用的技

NodeJs>------->>第一章:Node.js介绍

一:章节前言 二:Node.js概述 1:使用node.js能够解决什么问题 2:实现高性能服务器 3:非阻塞型I/O及事件环形机制 4:node.js适合开发的程序 三:node.js安装 一.Node.js 安装配置 Node.js 提供在Windows和Linux上安装, 本文将以Windows上Node最新版本v6.9.3为例来学习,不足之处还望指正: 1.  Window 上安装Node.js 32 位安装包下载地址 : https://nodejs.org/dist/v6.9.3/n