原创

玩转进程

玩转进程

服务模型的变迁

石器时代:同步

服务模式是一次只为一个请求服务

青铜时代:复制进程

通过进程的复制同时服务更多的请求和用 户

白银时代:多线程

让一个线程服务一个请求,并且线程之间可以共享数据

黄金时代:事件驱动

为了解决高并发问题,基于事件驱动的服务模型出现了

多进程架构

理想状态下每个 进程各自利用一个CPU,以此实现多核CPU的利用

创建子进程

child_process模块给予Node可以随意创建子进程(child_process)的能力

进程间通信

主线程与工作线程之间通过onmessage()和postMessage()进行通信子进程对象则由send()方法实现主进程向子进程发送数据

句柄传递

一种可以用来标识资源的引用,它的内部包含了指向对象的文件描述 符

集群稳定之路

进程事件

message

error

exit

close

disconnect

自动重启

自杀信号

限量重启

负载均衡

操作系统的抢占式策略,闲着的进程对到来的请求进行争抢,谁抢到谁服务

状态共享

数据共享:第三方数据存储

主动通知

Cluster 模块

Cluster 工作原理

事实上cluster模块就是child_process和net模块的组合应用

Cluster 事件

fork

online

listening

disconnect

exit

setup

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nodejs进阶:如何玩转子进程(child_process)

    本文作者:IMWeb 陈映平 原文出处:IMWeb社区 未经同意,禁止转载 模块概览 在node中,child_process这个模块非常重要。掌握了...

    IMWeb前端团队
  • Nodejs进阶:如何玩转子进程(child_process)

    在node中,child_process这个模块非常重要。掌握了它,等于在node的世界开启了一扇新的大门。熟悉shell脚本的同学,可以用它来完成很多有意思的...

    IMWeb前端团队
  • 玩转Spring Cache --- 整合进程缓存之王Caffeine Cache和Ehcache3.x【享学Spring】

    前面文章大篇幅详细讲解了Spring Cache缓存抽象、三大缓存注解的工作原理等等。若是细心的小伙伴会发现:讲解时的Demo我使用的缓存实现方案均是Sprin...

    YourBatman
  • 进阶:玩转 CSS 变量

    如果当年的 CSS 预处理器变量对于初入前端的我来说是开启了新世界的大门,那么 CSS 变量对于我来说无疑就是晴天霹雳。其功能不但可以优雅的处理之前 js 不...

    coder_koala
  • 带你玩转matlab进度条

    有不少小伙伴肯定执行过运行时间到达几小时甚至是几天的matlab程序,运行之后就只看见命令窗口光标一直在闪、左下角状态区一直显示“正忙”,然后,然后就没有然后了...

    matlab爱好者
  • 玩转CVM之利用iptables进行端口转发

    在网络上发送的所有数据包都是有原地址和目标地址的,NAT就是要对数据包的原地址或者目标地址(或者端口)进行修改的技术。

    苏欣
  • 玩转springboot:入门程序

    浏览器发送hello请求,服务器接受请求并处理,响应Hello World字符串;

    好好学java
  • [Linux] PHP程序员玩转Linux系列-使用supervisor实现守护进程

    首先遇到的问题是,部署nodejs的博客程序时,我把执行nodejs的命令放到后台,使用加&和nohup命令

    陶士涵
  • 前端请进:玩转Angular 注射器

    ? 2009 年 AngularJS 第一个把“依赖注入”机制引入到了前端开发中,开创了用后端设计思想大规模入侵前端领域的先河。 如果没有深入使用过 Spri...

    CSDN技术头条
  • python中进制转换任意玩儿

    十进制: 0、1、2、…..8、9、10、11、12、13、14、15,16

    刘金玉编程
  • 玩转SpringBoot的启动过程

    生命周期和事件监听 一个应用的启动过程和关闭过程是归属到“生命周期”这个概念的范畴。 典型的设计是在启动和关闭过程中会触发一系列的“事件”,我们只要监听这...

    Java3y
  • 玩转 Vue.js 3 新特性进阶实战

    Vue 是用于构建用户界面的渐进框架,具有全家桶 vue-router 路由管理,vuex 仓库数据管理,axios 请求库等。Vue 3 在 Vue 2.x ...

    公众号---人生代码
  • 优雅的玩PHP多进程

    resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, stri...

    sunsky
  • 涨姿势 , JavaScript 玩转多线程编程~

    浏览器端JavaScript是以单线程的方式执行的,也就是说JavaScript和UI渲染占用同一个主线程,那就意味着,如果JavaScript进行高负载的数据...

    苏南
  • 玩转Mysql系列 - 第18篇:流程控制语句(高手进阶)

    上一篇存储过程&自定义函数,对存储过程和自定义函数做了一个简单的介绍,但是如何能够写出复杂的存储过程和函数呢?

    路人甲Java
  • 玩转Google

     网上浏览信息,用百度搜索的时候,第一页都是广告,真是槽心到极点,果断放弃百度,现在用谷歌是真舒服,用起一句话用好谷歌、用好搜索引擎、你可以打开世界的大门!

    Dawnzhang
  • 玩转jupyter

    Jupyter Notebook是一个开源的Web应用程序,可以让您创建和实时共享代码、方程式、可视化和说明文本等文档。主要用于:数据清理与转换,数值模拟,统计...

    尾尾部落
  • 玩转OpenFeign

    很多时候,我们需要在项目中调用一些第三方接口,例如对接支付宝支付、微信支付,调用支付接口。如果项目中引入了OpenFeign,那么我们是否可以使用OpenFei...

    Java艺术
  • 玩转nginx

    1、nginx是什么: nginx是一个高性能的服务器,占用内存少,并发能力强。

    贪挽懒月

扫码关注云+社区

领取腾讯云代金券