Nodejs 是什么?

了解node.js

前言

Node.js是构建于Chrome V8引擎上的Javascript 运行时 ,Javascript才是一门语言,简单理解Node.js就是让Javascript在服务器上跑起来的运行时;Node.js使用 事件驱动机制、具有非阻塞的I/O模型这样的特点,废话不多说,来看看本次分享 都有哪些亮点吧!

一、认识 Node.js

关键词:非阻塞I/O、事件驱动

1. 非阻塞I/O

阻塞:I/O时进程休眠等待I/O完成时进行下一步

非阻塞:I/O时函数立即返回,进程不等待I/O完成

2. 事件驱动

事件驱动:I/O等待异步操作结束后的通知

内部实现:通过观察者模式来实现事件驱动机制

二、Node.js的 长处

关键词:高并发、I/O密集场景优势明显

为何偏爱Node.js:

  • 前端职责范围变大,统一开发体验

  • 事件驱动和异步I/O的优点,让Node在处理高并发、I/O密集场景时的性能优势明显

1. CPU密集 VS I/O密集

CPU密集:如果某一个程序大部分用来做逻辑判断、计算,则称之为CPU密集

CPU密集:压缩、解压、加密、解密

I/O密集:如果某一个程序大部分用来做存取操作,则称之为I/O密集

I/O密集:文件操作、网络操作(HTTP)、数据库操作

2. web常见场景(I/O密集)

  • 静态资源读取(HTML、css\javascript)

  • 数据库操作

  • 渲染页面

以上场景均可称为I/O密集操作,当然也包含部分的(CPU操作)

3. 高并发

高并发:在单位时间内,访问量特别大称之为高并发

高并发应对之道:

  • 增加机器数:流量非常的大时,通过负载均衡让不同机器处理

  • 增加每台机器的CPU数量(多核):运算能力的增强

4. 进程

进程:是计算机中的程序关于某数据集合上的一次运算活动,是系统进行资源分配和调度的基本单位

多进程:启动多个进程,多个进程可以一块执行多个任务

传统WEB服务器(当当前任务完成后在执行下一任务,单台机器容易面临高并发问题):

(打比方):

        点菜
用户------->服务员---------->厨师------
    <------- <---- |  上菜    |  做菜 |
                    <--------- <-----|

下一用户...

下一用户.....

Nodejs工作模型:

5. 线程

线程:进程内的一个相对独立、可以调度的执行单元,与同属一个进程的线程共享进程的资源

多线程:启动一个进程,在一个进程内启动多个线程,这样多个线程可以一块执行多个任务

Nodejs单线程:

- 单线程只是针对进程,I/O操作系统的底层仍然是多线程调度

- 单线程并不是单进程

Node.js性能好的前提(常用场景): WEB场景、高并发、I/O密集

6. 公司实际开发常用Node.js做什么?

  • Web Server

  • 本地代码构建

  • 实用工具开发(小爬虫)

结语

OK,这次关于Node.js的分享 到这就结束了,希望能帮助刚入门的小白😜有深刻的理解。

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值