位置: 编程技术 - 正文

node 利用进程通信实现Cluster共享内存(node 线程 进程)

编辑:rootadmin

推荐整理分享node 利用进程通信实现Cluster共享内存(node 线程 进程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node子进程,node子进程,node 线程 进程,node多进程,node获取某个进程pid,node进程通信,node 进程管理,node子进程,内容如对您有帮助,希望把文章链接给更多的朋友!

Node.js的标准API没有提供进程共享内存,然而通过IPC接口的send方法和对message事件的监听,就可以实现一个多进程之间的协同机制,通过通信来操作共享内存。

##IPC的基本用法:

在Node.js中,通过send和on(‘message', callback)实现的IPC通信有几个特点。首先,master和worker之间可以互相通信,而各个worker之间不能直接通信,但是worker之间可以通过master转发实现间接通信。另外,通过send方法传递的数据,会先被JSON.stringify处理后再传递,接收后会再用JSON.parse解析。所以Buffer对象传递后会变成数组,而function则无法直接传递。反过来说,就是可以直接传递除了buffer和function之外的所有数据类型(已经很强大了,而且buffer和function也可以用变通的方法实现传递)。

基于以上特点,我们可以设计一个通过IPC来共享内存的方案:

1、worker进程作为共享内存的使用者,并不直接操作共享内存,而是通过send方法通知master进程进行写入(set)或者读取(get)操作。

2、master进程初始化一个Object对象作为共享内存,并根据worker发来的message,对Object的键值进行读写。

3、由于要使用跨进程通信,所以worker发起的set和get都是异步操作,master根据请求进行实际读写操作,然后将结果返回给worker(即把结果数据send给worker)。

node 利用进程通信实现Cluster共享内存(node 线程 进程)

##数据格式

为了实现进程间异步的读写功能,需要对通信数据的格式做一点规范。

首先是worker的请求数据:

master在接到数据后,会根据method执行相应操作,然后根据requestMessage.id将结果数据发给对应的worker,数据格式如下:

规范数据格式的意义在于,master在接收到请求后,能够将处理结果发送给对应的worker,而worker在接到回传的结果后,能够调用此次通信对应的callback,从而实现协同。

规范数据格式后,接下来要做的就是设计两套代码,分别用于master进程和worker进程,监听通信并处理通信数据,实现共享内存的功能。

##User类

User类的实例在worker进程中工作,负责发送操作共享内存的请求,并监听master的回信。

##Manager类

Manager类的实例在master进程中工作,用于初始化一个Object作为共享内存,并根据User实例的请求,在共享内存中增加键值对,或者读取键值,然后将结果发送回去。

##使用方法

标签: node 线程 进程

本文链接地址:https://www.jiuchutong.com/biancheng/368541.html 转载请保留说明!

上一篇:基于Datatables跳转到指定页的简单实例(datatable.load)

下一篇:Express系列之multer上传的使用(express model)

  • 工资表个税多扣了账务处理递减
  • 印花税的计税方法
  • 消费型增值税的特点的是( )
  • 围挡属于什么类型
  • 自然人税务系统扣缴客户端怎么申报
  • 减免税额和抵免的区别
  • 现金清查时,发现长款200元,未查明原因,经批准后转销
  • 金蝶kis 反结账
  • 公司对公账户限额吗
  • 银行现金支票怎么填
  • 发放取暖补贴文件
  • 营改增后建筑业
  • 往来款太大怎么处理
  • 财务报表中预收账款的数据是怎么来的
  • 农业水费管理使用办法
  • 劳务分包异地用预缴税款吗?
  • 非征期不能抄报
  • 教育咨询发票怎么开具
  • 增值税交完之后还要交什么税
  • 无票收入确认收入
  • 会计计提和冲回
  • 款已付发票未到怎么做结转成本
  • 小规模纳税人销售自己使用过的物品
  • win11 zen1
  • 监理多计量承担什么责任
  • 今年利润弥补以后怎么算
  • 企业所得税税负率多少合适
  • 增值税报表上期留底税额填不上
  • 在windows7中桌面指的是全部窗口
  • 未分配利润可留待以后年度进行分配的当年结余利润
  • php数组函数实现机选双色球
  • bearshare.exe进程安全吗 bearshare是什么进程
  • 印花税税收优惠政策2023
  • edi文件怎么打开
  • 固定资产入账流程图
  • yolov3 改进
  • 房产税为什么会退税
  • php目录结构
  • 什么叫python
  • 存货降价销售的会计分录
  • 材料短缺计入成本吗
  • 接待客户的住宿费发票是开谁的
  • 金蝶迷你版年结账套
  • 减免所得税额是自动计算吗
  • 运输开票的税点是多少
  • 税务局返还的个税手续费是否纳税
  • 发票金额大于实际报销怎么做账
  • 收到法人的借款怎样写摘要
  • 扶贫小额信贷分贷统还违规吗
  • 对外贸易出口公司
  • 道路交通事故中施救费应如何处理?
  • 营改增后建筑企业如何正确开具发票
  • 实收资本小于注册资本账务处理
  • 劳动者权益包含哪些
  • mysql union join
  • 按关键字13,24,37,90,53,34
  • windows server 2003 sp2密钥
  • win8.1电脑设置在哪里
  • ssh访问windows
  • centos7yum安装
  • mblme是什么进程
  • windows10不能在任务栏进行的操作
  • ERROR 1045: Access denied for user: root@localhost (Using password: NO)
  • unity物体旋转到指定角度
  • opengl
  • js+html
  • opengl 实现
  • jquery校验数字
  • node web 框架
  • python中list的用法例子
  • linux随机数生成1到100
  • dos常用命令与批处理文件
  • Linux 中的time函数
  • 税控盘托管给百旺的弊端
  • 小微企业不交所得税
  • 百旺税控盘怎么备份数据
  • 税务税收预测
  • 合伙企业取得的专利权属于合伙企业财产吗
  • 宾馆增值税专用发票可以抵扣
  • 公司迁税务所流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设