深入浅出NodeJS笔记(一)
来源:互联网 发布:asp域名授权码程序dll 编辑:程序博客网 时间:2024/06/02 02:40
*这个系列是阅读并实践朴灵的著作《深入浅出NodeJS》一书的笔记*
第1章 Node简介
1.在底层构建了很多异步I/O的API,意义在于可以从语言层面很自然地进行并行I/O操作。
2. JavaScript是一门图灵完备的语言。
3. Node的结构与Chrome相似,都是基于事件驱动的异步架构。
4. Node将前端浏览器中广泛且成熟的事件引入后端,配合异步I/O,将事件点暴露给业务逻辑。(例如一个http服务器连接,请求代码)
5. Node保持了Javascript在浏览器中单线程的特点。最大好处是避免同步、死锁问题和上下文切换的开销。缺点是无法利用多核CPU,错误会引起整个应用退出(健壮性),大量计算占用CPU导致无法继续调用异步I/O。对于第三点缺陷,浏览器JS有类似的问题,JS与UI共用一个线程,长时间执行JS会导致UI渲染和响应被中断。HTML5定制了Web Workers标准解决这个问题,其可以创建工作线程进行计算,工作线程不阻塞主线程,通过消息传递的方式返回运行结果,不能访问主线程的UI。Node的解决方案是childe_process。通过创建子进程,分解掉大量的计算,通过进程之间事件消息传递结果。同时可以应对单线程的健壮性和无法利用多核CPU的问题。
6. Node通过架构改动实现跨平台,在系统与NodeJS上层模块之间构建一层平台层架构:libuv。也可以通过libuv实现Node的第三方c++模块的跨平台。
7. Node面向网络且擅长并行I/O,适合I/O密集型的场景。
8.有两种方式来充分利用CPU:
a.编写C++扩展高效利用CPU
b.通过子进程的方式,将一部分Node进程当作常驻服务进程用于计算,然后利用进程间的消息传递结果,将计算与I/O分离
9.阿里巴巴使用Node做分布式数据查询。Node高效利用并行I/O的过程,也是高效实用数据库的过程。
- 深入浅出NodeJS笔记(一)
- 深入浅出NodeJS笔记(一)
- 深入浅出NodeJS笔记(二)
- 深入浅出NodeJS笔记(三)
- 深入浅出Nodejs读后感(一)
- nodejs简介笔记(一)
- Nodejs学习笔记(一)
- Nodejs学习笔记(一)
- NodeJs学习笔记(一)
- 《深入浅出MFC》笔记(一)
- 深入浅出MySQL笔记(一)
- 深入浅出NodeJS笔记(四)--- 事件订阅与雪崩问题
- 深入浅出NodeJS笔记(五)---- Promise的序列执行
- 《深入浅出nodejs》异步i/o笔记(1)
- 《深入浅出nodejs》异步I/O笔记(2)
- 菜鸟学习NodeJS笔记(一)
- Nodejs 学习笔记-概括(一)
- 菜鸟学习NodeJS笔记(一)
- 文件的切割与合并练习
- bzoj 4127: Abs
- CSS盒子模型
- spring 配置<context:component-scan base-package=” ”/>
- C++默认参数
- 深入浅出NodeJS笔记(一)
- VB.NET 获取本机在局域网内的IP
- 配置文件简单应用
- leetcode--Invert Binary Tree
- Qt Creator键盘快捷键速查
- 黑马程序员---IO流-字节流
- 133 猿亭 崔壽城 遭己卯禍
- iOS发送验证码倒计时功能的实现
- 一、Linux 学习注意事项