Node.js从入门到深入——Node.js的了解

Node.js从入门到深入,为《Node.js从入门到深入》系列文章的博客文章,欢迎交流学习。by——danhuang

Node是什么?

Node是一个Javascript运行环境(runtime)。实际上它是对GoogleV8引擎(应用于Google Chrome浏览器)进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。(摘自百度百科)

      Node.js并非一种语言,而是一个运行环境,其主要是基于GoogleV8引擎进行封装的一个解析器。其目的是可以在服务器端执行和运行Javascript代码,长久以来javascript都是一个基于浏览器的客户端脚本语言,通过将其运行环境抽离出来,就可以在服务器端运行javascript代码,而并非仅仅依赖浏览器解析,从而就可以将其作为服务器端语言,而其异步非阻塞特性,因此其在长连接、多请求的环境下优势非常明显。

      Node.js的编程语言还是基于javascript,因此想深入学习了解Node.js的入门者,还是应该去熟悉的javascript编程语言,同时要对服务端开发有所了解。Node.js提供了一些特殊的API(官网有详细),因此在编写Node.js的时候可以理解为,使用javascript语言,利用Node.js的API进行服务端开发。

Node能带来什么?

传统的服务器端语言PHP和Java,每个连接产生式一个线程,每个线程大概需要2M的配置内存,因此相对一个8G的服务器主机,也只能承受来自4000个并发用户的请求,当服务器承受不了这么多用户的情况下就需要添加服务器,增加运营成本。

Node 解决这个问题的方法是:更改连接到服务器的方式。每个连接发射一个在 Node 引擎的进程中运行的事件,而不是为每个连接生成一个新的 OS 线程(并为其分配一些配套内存)。Node 声称它绝不会死锁,因为它根本不允许使用锁,它不会直接阻塞 I/O 调用。Node 还宣称,运行它的服务器能支持数万个并发连接。(摘自IBM——Node.js是什么?)

      上一节我们介绍了Node.js拥有异步非阻塞特性。那么如何才能很好的利用这点呢?

利用该特性可以开发这类项目如:

实时在线Game(这部分可以很好的利用HTML5的知识,进行整合开发游戏,比如“大家一起来画画”),黑暗杀人游戏, 实时休闲游戏(扑克、象棋、麻将等);

实时在线聊天室,实时消息推送功能,SNS实时交流等;

实时监控系统(例如:股票、系统运行状态等);

当然不是所有项目都适合使用Node.js来做,毕竟PHP和其他服务器端语言比较成熟,在安全性方面更优于Node.js,当然Node.js也在慢慢的成熟阶段。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯大数据的专栏

分布式系统场景注入测试

前言 大数据浪潮下,海量数据处理能力的提升是推动大数据不断前行的基础,海量数据处理的分布式系统应运而生,hdfs、hadoop、spark、storm、MQ等...

2648
来自专栏Spark学习技巧

Apache Kafka:优化部署的 10 种最佳实践

Apache Kafka 肯定会像它的同名小说家一样不负众望,因为它能激奋新来者、挑战深度,若能更全面的理解它还会产生丰厚的回报。抛开文学,书归正传。遵循 ka...

1612
来自专栏云计算D1net

深度剖析众多的Azure管理工具

自从Windows Azure首次发布以来,微软公司的首要重点就一直是开发出一套工具来帮助用户管理其资源。这个云计算平台是出了名地难于管理,但是微软公司也在一直...

3527
来自专栏FreeBuf

开发者误读芯片厂商调试文档,导致主要操作系统均出现新内核漏洞

美国计算机安全应急响应中心(以下简称“CERT”)日前发布公告称,Windows、macOS、Red Hat、Ubuntu、SUSE Linux、FreeBSD...

1145
来自专栏程序猿DD

都在说微服务,那么微服务的反模式和陷阱是什么(一)

译者:程超 译文:http://www.jianshu.com/p/3986239138fe 一、数据驱动的迁移反模式 微服务会创建大量小的、分布式的、单一用途...

2029
来自专栏java一日一条

Java并发教程(Oracle官方资料)

计算机的使用者一直以为他们的计算机可以同时做很多事情。他们认为当其他的 应用程序在下载文件,管理打印队列或者缓冲音频的时候他们可以继续在文字处理程序上工作。甚至...

872
来自专栏性能与架构

MongoDB 即将支持跨文档事务

1692
来自专栏Albert陈凯

Hadoop数据分析平台实战——220项目结构整体概述离线数据分析平台实战——220项目结构整体概述

离线数据分析平台实战——220项目结构整体概述 数据展示系统(bf_dataapi)总述 bf_dataapi项目的主要目标有两个: 第一个目标就是我们需要提...

2965
来自专栏知识分享

1-关于ESP8266配网,单片机程序远程升级(我的配网和升级程序方式)

9074
来自专栏FreeBuf

基于Lua插件化的Pcap流量监听代理

1.前言 我们在实际工作中,遇到了一个这样的用例,在每天例行扫描活动中,发现有些应用系统不定期的被扫挂,因为我们不是服务的制造者,没有办法在不同的系统里打印日志...

35210

扫码关注云+社区