当前播放: 43 | 多进程优化:Node.js cluster模块实战与源码解读
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:课程简介 (5讲)
01 | 课程介绍
免费
02 | 内容综述
免费
03 | Node.js是什么?
免费
04 | Node.js可以用来做什么?
免费
05 | 课程实战项目介绍
免费
第二章:技术预研篇 (20讲)
06 | 什么是技术预研?
07 | Node.js开发环境安装
08 | 第一个Node.js程序:石头剪刀布游戏
09 | 模块:CommonJS规范
10 | 模块:使用模块规范改造石头剪刀布游戏
11 | 模块:npm
12 | 模块:Node.js内置模块
13 | 异步:非阻塞I/O
14 | 异步:异步编程之callback
15 | 异步:事件循环
16 | 异步:异步编程之Promise
17 | 异步:异步编程之async/await
18 | HTTP:什么是HTTP服务器?
19 | HTTP:简单实现一个HTTP服务器
20 | HTTP:实现网页版石头剪刀布
21 | HTTP:用express优化石头剪刀布游戏
22 | HTTP:用koa优化石头剪刀布游戏
23 | RPC 调用:什么是RPC调用?
24 | RPC调用:Node.js Buffer编解码二进制数据包
25 | RPC 调用:Node.js net建立多路复用的RPC通道
第三章: 项目开发篇 (11讲)
26 | 项目启动:整体需求分析
27 | 项目启动:极客时间App下载页开发
28 | 课程详情页:极客时间详情页需求解构
29 | 课程详情页:将ES6模版字符串改造成模板引擎
30 | 课程详情页:极客时间详情页需求实现
31 | 课程播放页:极客时间播放页需求解构
32 | 课程播放页:GraphQL API服务
33 | 课程播放页:极客时间播放页需求实现
34 | 课程列表页:极客时间列表页需求解构
35 | 课程列表页:用 Vue/React 进行服务端渲染
36 | 课程列表页:极客时间列表页需求实现
第四章:性能调优篇 (10讲)
37 | 性能工具:HTTP服务的性能测试
38 | 性能工具:Node.js性能分析工具
39 | 代码优化:JavaScript代码性能优化
40 | 代码优化:内存管理优化
41 | 代码优化:Node.js C++插件
42 | 多进程优化:Node.js子进程与线程
43 | 多进程优化:Node.js cluster模块实战与源码解读
44 | 多进程优化:进程守护与管理
45 | 架构优化:动静分离
46 | 架构优化:反向代理与缓存服务
第五章:框架和工程化篇 (11讲)
47 | 概念:框架设计和工程化
48 | 概念:设计模式
49 | 概念:Serverless
50 | 服务端框架搭建:koaless
51 | 服务端框架搭建:屏蔽请求细节
52 | 服务端框架搭建:完成服务端框架
53 | 云函数式工程实现:服务端代码
54 | 云函数式工程实现:工具端代码
55 | 加餐:调试 Node.js 源码
56 | 结课测试&结束语
57 | 彩蛋:这是一个严肃的课程
43 | 多进程优化:Node.js cluster模块实战与源码解读

43 | 多进程优化:Node.js cluster模块实战与源码解读

杨浩
腾讯高级工程师
全集5782
新人首单 ¥29.9 原价 ¥129
4
本节摘要
登录 后留言

精选留言(8)

  • 一步
    const cluster = require('cluster');
    const os = require('os');

    if (cluster.isMaster) {
        for(let i = 0; i < os.cpus().length / 2; i++) {
            cluster.fork();
        };
    } else {
        require('./app.js');
    };

    创建子进程的时候,这段代码是怎么运行的? 当 node 执行该文件的时候 cluster 默认就是 master ? 然后 fork 出来几个子进程,那么 else 分支的实际的 http 服务是什么时候执行的?

    作者回复: 子进程启动的时候也会执行这个文件,并且isMaster是false

    2019-11-15
    3
  • 小平
    真的很优秀哈哈哈,期待后续出更多node课程

    作者回复: 谢谢

    2019-11-17
    2
  • chopper
    老师看源码好快,怎么训练出来的?

    作者回复: 因为提前看过,😂

    2019-12-27
    1
  • 一步
    启动单进程 ab 压测 qps 为 1400 左右, 启动多进程后 qps 低于 1400 ........

    作者回复: 要看看你的cpu具体情况是怎样

    2019-11-15
    1
  • mickey
    我的理解是fork出的是线程,进程还是监听3000端口,接收到请求后再分发给创建的线程处理。

    作者回复: fork出来的是子进程,源码是能看到的

    2020-04-09
  • Icarus
    这一节挺硬核的
    2020-04-04
  • Noah
    Cluster和child_process有什么区别呢?感觉是在做类似的事情,好像child_process更灵活些?

    作者回复: 不用把他们当成一个同级的竞争关系来理解。

    child_process提供来子进程的基础能力,cluster在它的基础上封装了更好用的多核服务能力

    2020-02-24
    1
  • tokey
    老师想问下,我用pm2的cluster效果是不也一样,或者有什么区别,,

    作者回复: pm2里有带有这里提到的cluster模块的功能的。这里我是实际演示了这个功能的代码原理。

    2019-12-30
    1
收起评论
看过的人还看
重学前端

程劭非(winter)  前手机淘宝前端负责人

58讲 | 36162 人已学习

新人首单 ¥19.9 原价 ¥99
玩转webpack

程柳锋  腾讯高级工程师,IVWEB团队社区和工程化负责人

84讲 | 7110 人已学习

新人首单 ¥19.9 原价 ¥99
TypeScript开发实战

梁宵  搜狗营销事业部高级架构师

47讲 | 4244 人已学习

新人首单 ¥29.9 原价 ¥129
JavaScript核心原理解析

周爱民  《JavaScript语言精髓与编程实践》作者,南潮科技(Ruff)首席架构师

28讲 | 5047 人已学习

新人首单 ¥9.9 原价 ¥68