nginx/node.js/postgres是一个非常可扩展的架构吗?

Luc*_*Luc 5 postgresql scalability nginx node.js

我有一个运行的应用程序:

  • nginx的一个实例作为前端(服务静态文件)
  • 后端的node.js应用程序集群(使用cluster和expressjs模块)
  • Postgres的一个实例作为DB

如果应用程序需要可伸缩性(这仅适用于HTTP/REST请求),则此体系结构是否足够:

  • 每秒500个请求(每个请求仅从DB中获取数据,这些数据可能是几个ko,并且在获取后不需要大量计算).

  • 20000个用户同时连接

哪里可能是瓶颈?

ben*_*y23 5

对于指定的负载(500 个简单请求/秒),我不会认为这会是一个太大的问题。我的猜测是,甚至不需要节点实例集群。

但是,由于您只有一个实例,因此在扩展时,这很可能成为您的瓶颈。您还有一个额外的问题,即这将是您的单点故障(我不熟悉 Postgres,这里使用的是 Oracle 集群和 dataguard,这意味着我们有一个备份数据库集群来缓解这种情况) .

如果您不需要关系数据模型,那么 MongoDB 可能是更具可扩展性的选择。

要记住的另一件事是您的网络基础设施。如果您要添加集群/节点,请确保网络可以处理分布式负载。

最后一件事:通常,如果没有性能/容量/压力测试,就无法确定架构上的应用程序是否可以处理特定负载,因此答案是响亮的“可能”。