位置: 编程技术 - 正文

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)

  • 资产负债表应交税费
  • 年度所得税汇算清缴操作流程
  • 工业厂房房产税税率
  • 船舶吨税范围
  • 金蝶eas怎么用
  • 化肥与农药的利与弊
  • 房地产开发企业资质证书
  • 专家住宿费入什么科目
  • 年初建账考虑要点有哪些
  • 基本户没有注销对法人有影响吗
  • 社保基数是按税前工资还是税后工资
  • 个人投资企业投资人签字
  • 企业所得税季度预缴可以弥补以前年度亏损吗
  • 外商投资企业清算报告
  • 确认收入时需要结转成本吗
  • 用现金支付购买增值税应税服务
  • 购进固定资产汽车该如何进行会计处理?
  • 政府会计基本准则的附则有
  • 17点增值税发票能开吗
  • 一般纳税人核定征收增值税
  • 企业合同约定调岗不接受辞退没赔偿成立吗
  • 怎么计提所得税费用
  • 帮别人公司过账100万,再转30回给他
  • 公司发放的车补扣个人所得税吗
  • 给已经注销的公司退款
  • 非营利组织企业所得税政策
  • 支付工程款会计处理
  • 药店销售小票要保存多久
  • 内存条松动导致黑屏
  • 财务报表包括哪几个表
  • 退货需要进行的操作
  • 以前年度应收账款错误如何调整
  • 公司股权变更后税务没有变更会有什么后果
  • 遗失发票如何处理好
  • 初级会计中应收账款贴现
  • 民办学校的财务制度
  • 消防器材怎么做?
  • 路由器和交换机用什么线连接
  • repair.exe是什么软件
  • php语言设计模式之单例模式
  • Ichetucknee河的海牛,佛罗里达州 (© Jennifer Adler/Alamy)
  • 公司法人变更后银行账户怎么变更
  • 营改增抵减的销项税发票要抵扣吗
  • 缴纳残保金会计分录最新
  • 企业所得税核算分录
  • 新申报是什么
  • 银行开出的承兑怎么兑现
  • phpcms api
  • 工业企业取得土地收益
  • 企业所得税的会计处理怎么做
  • 报关单填制相关规范相关文件
  • 哪些合同必须签订书面合同
  • 购买旧固定资产入账
  • 支付增值税税控系统技术维护费用
  • 走账的目的
  • 购进交通运输设备怎么做账
  • 土地使用权的核算
  • 小规模纳税人无票收入申报表怎么填
  • 已经抵扣的发票不见了怎么办?
  • 收到非税收入一般缴款书怎么分录
  • 存货报废损失会计处理
  • 所有者权益的确认依赖于资产和负债的确认
  • 飞机发票和行程单一样吗
  • count(10,2,5)
  • Mysql中几种插入效率的实例对比
  • win2000服务器
  • linux仿mac
  • win7系统安装虚拟机
  • win7系统怎么设置不休眠
  • windows预览0x80072ee7
  • win10如何设置时间和日期
  • nodejs不再维护
  • 安卓 游戏软件
  • Begin OpenGL with Python-1st Day,draw a simple sample.
  • javascript学习指南
  • bs cs架构
  • pycharm怎么学
  • 小规模现代服务的税率是多少啊怎么算
  • 浙江省医保改革方案2022
  • 公路客运购票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设