DotCloud上的Nginx + NodeJS + MongoDB

时间:2012-10-10 11:03:08

标签: node.js mongodb dotcloud

我想了解您在DotCloud上有关此设置的经验,以及有关每个人的一般体验。我的问题是,

  1. 它如何扩展?
  2. 此设置中的Nginx角色是什么,仅用于请求调度,还是支持负载平衡?
  3. MongoDB占用多少内存? MongoDB中是否有任何内存管理优化?
  4. NodeJS消耗多少内存?
  5. 我知道这一切都取决于什么样的应用程序,但我只是假设NodeJS是一个高吞吐量的解决方案,所以实际需要的内存应该比普通的Web服务器少(?)。

1 个答案:

答案 0 :(得分:2)

就像@Ken Cochrane所说,Node服务中没有nginx,也不需要它。 你可能不想要它,如果你有真正想用nginx提供的静态内容,而不是通过Node你可以为它添加一个静态服务。

负载平衡由我们的网关完成,将您的流量重定向到不同的实例或缩放的服务。如果您扩展了服务,那就是这样。

只要您的应用程序按比例设计,Node.js就可以完美扩展。如果您仔细确保您的会话在缓存或数据库中共享,那么扩展它就没有什么神奇之处。如果丢失一个实例不是问题,因为节点服务的内存中没有任何内容,并且如果您处理数据库重新连接,那么您可能会很好地扩展。

mongoDB使用多少是不可能的,这完全取决于你的应用程序。我们有巨大的mongoDB,从使用爬虫的人到简单的使用那么多ram的人。这取决于我们的应用程序的成功。这真的很难留下来。但是你可能不会在一段时间内打1G。

关于节点。您不希望在内存中存储任何内容,因为它们不在您的实例之间共享。因此,除非您正在做一些非常特殊的事情,否则您的Node实例不应使用太多内存对于普通应用程序,256MB应该没问题,甚至更少。