CNode

关于 NODEJS GLOBAL与多核心CLUSTER 问题的一些探究

MMiguelValentine发布于12 年前最后回复12 年前2 回复5627 浏览0 收藏

因为之前研究NODEJS自建缓存。但是在实际运营过程中发现问题。 因为跑缓存的变量是由GLOBAL定义的。

于是尝试了由GLOBAL -> cluster 的启动顺序。 在刷写缓存时失败。原因是 每个核心的GLOBAL 独立。要同步GLOBAL还需要使用process方法。

使用核心事件的监听的确可以同步GLOBAL做缓存。 但是很严重的一个问题,就是缓存副本过多。当作为生产环境时,吃内存现象极其严重。同步缓存时耗费系统资源过大。

最终还是放弃了CLUSTER+GLOBAL缓存的方式采用REDIS。

除了在服务器上另开一个单核实例作为缓存之外,有没有大神可以解决这个问题。

_(:з」∠)_研究中拜谢。

PS:在采用EXPRESS的过程中,发现MVC并不能高效发挥服务器性能。我个人采用了基于路由表的一种R2B(自称)形式。

查看回复

回复 (2)

A
alsotang#1·12 年前

用了 cluster 的话,就用到了多进程,每个 node 跑在不同的进程上面,如果要同步的话,一定是要另开一个进程来做通信的。

我觉得用 redis 的方案很好啊。

R
ringtail#2·12 年前

恩,我觉得redis很好了,不然你烧不慎,就可能出现内存泄漏

参与回复
登录后即可参与回复。登录