Node 集群与 Dynos 扩展的比较

3
阅读了一些有关扩展节点应用程序的文章后,我仍然没有确定何时应该使用节点内置群集或仅添加更多的dynos。
让我告诉你,我已经阅读了以下StackOverflow主题: 如何使用集群正确扩展Heroku上的nodejs应用程序 在Heroku中使用集群模块运行Node.js应用程序是没有意义的? 据我所知,如果我使用节点集群功能,最终会将可用总内存除以分叉进程数。
另一方面,如果我添加一个dyno,我将使可用内存翻倍。
那么,使用节点集群的意义是什么?
1个回答

3
这并不是非此即彼的情况。您可以在多个dynos上使用多个节点集群实例。但需要注意的是,内存并不是您想要关注的重点,因为它是一种共享资源。在节点集群中,CPU / 核心使用率更相关,因为每个节点进程一次只能使用一个CPU核心。
这确实取决于您正在使用哪些dynos。
您是否已经看到了官方Heroku文档上这些建议

2
是啊,那些疯狂的文档...... 在Heroku的情况下,我认为这些文档写得非常好,对于使用他们的东西的人来说是必读的。 - Paul
@dvlsg,嗯,就是读完那份文件之后,我认为应该看的不是CPU,而是dyno所持有的RAM。但例如,如果我正在使用免费帐户,即512 MB内存的dyno,使用集群是没有意义的,对吗? - utxeee
不,大多数情况下您仍然需要查看CPU /核心。但是,如果您正在使用免费的dynos(或hobby或standard-1x),则您的结论仍然是正确的。您只需要使用一个节点应用程序实例,因为只有一个核心可供您使用。在这里,您需要查看默认表和集群工作进程的数量。 - dvlsg
嗯,也许我理解错了,但根据那个表格,他们说只有在聚类超过1个工作器之后,才会对应用程序造成影响。因此,即使是免费、爱好者、标准-1x动态组,他们也建议进行聚类。我理解正确吗? - utxeee
1
不,根据我的理解(我认为我理解正确),他们建议在免费/爱好/1x dynos中使用1个工作进程,这与仅具有单个进程的开销相同,而无需担心集群问题,因为您知道您只打算使用单个进程。 - dvlsg
感谢dvlsg的澄清。 - utxeee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接