Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在nodejs环境中的多个进程之间共享内存_Node.js - Fatal编程技术网

Node.js 在nodejs环境中的多个进程之间共享内存

Node.js 在nodejs环境中的多个进程之间共享内存,node.js,Node.js,这就是我正在思考的问题: 一台物理服务器通过集群模块运行node js http server,这意味着有多个单独的进程,每秒钟我都会收到大量请求(5000-10000k),每个进程分别计算其传入的请求,然后在memcache中聚合这些统计数据 这样的体系结构会在i/o操作上产生额外的处理器时间消耗+在同一服务器上运行的额外大型服务 我考虑的是创建一个小型服务,为请求计数器分配一些内存,之后,当http服务器进程启动时,它们连接到这个服务并从中接收计数器所在内存上的指针,这样它们就可以直接从中递

这就是我正在思考的问题:

一台物理服务器通过集群模块运行node js http server,这意味着有多个单独的进程,每秒钟我都会收到大量请求(5000-10000k),每个进程分别计算其传入的请求,然后在memcache中聚合这些统计数据

这样的体系结构会在i/o操作上产生额外的处理器时间消耗+在同一服务器上运行的额外大型服务

我考虑的是创建一个小型服务,为请求计数器分配一些内存,之后,当http服务器进程启动时,它们连接到这个服务并从中接收计数器所在内存上的指针,这样它们就可以直接从中递增和读取数字,而无需中间服务命令

问题:有没有办法在一个进程中分配内存,然后将该内存的指针地址提供给另一个进程的多个集合,以便这组进程可以直接读取和写入该内存?这在NodeJS中应该是可能的


答案:经过一些研究,我遇到了共享内存系统调用,并将它们用于自编的nodejs ad don,这允许我在多个进程中使用单个内存块。这种方法的缺点是只允许使用基元类型(char,int)

我不完全理解这个问题。。您想在集群上实现缓存吗?那么您的问题是什么?主要问题:有没有办法在一个进程中分配内存,然后将此内存的指针地址提供给另一个进程的多个集合,以便这组进程可以直接读写该内存。这在NodeJS中应该是可能的