关于 NODEJS GLOBAL与多核心CLUSTER 问题的一些探究
因为之前研究NODEJS自建缓存。但是在实际运营过程中发现问题。 因为跑缓存的变量是由GLOBAL定义的。
于是尝试了由GLOBAL -> cluster 的启动顺序。 在刷写缓存时失败。原因是 每个核心的GLOBAL 独立。要同步GLOBAL还需要使用process方法。
使用核心事件的监听的确可以同步GLOBAL做缓存。 但是很严重的一个问题,就是缓存副本过多。当作为生产环境时,吃内存现象极其严重。同步缓存时耗费系统资源过大。
最终还是放弃了CLUSTER+GLOBAL缓存的方式采用REDIS。
除了在服务器上另开一个单核实例作为缓存之外,有没有大神可以解决这个问题。
_(:з」∠)_研究中拜谢。
PS:在采用EXPRESS的过程中,发现MVC并不能高效发挥服务器性能。我个人采用了基于路由表的一种R2B(自称)形式。
2 回复
用了 cluster 的话,就用到了多进程,每个 node 跑在不同的进程上面,如果要同步的话,一定是要另开一个进程来做通信的。
我觉得用 redis 的方案很好啊。
恩,我觉得redis很好了,不然你烧不慎,就可能出现内存泄漏