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

标签 postgresql node.js nginx scalability

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

  • 一个 nginx 实例作为前端(提供静态文件)
  • 用于后端的 node.js 应用程序集群(使用 cluster 和 expressjs 模块)
  • 一个 Postgres 实例作为数据库

如果应用程序需要可扩展性(这仅适用于 HTTP/REST 请求),这种架构是否足够:

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

  • 20000个用户同时连接

瓶颈在哪里?

最佳答案

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

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

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

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

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

关于postgresql - nginx/node.js/postgres 是一个非常可扩展的架构吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8167754/

相关文章:

postgresql - 为什么我在 postgresql 中的 View 不使用索引?

postgresql - unnest,对于每个结果

node.js - 读取和写入 Firestore 的 Firebase 函数会抛出 ReferenceError : query is not defined at cors and Unhandled rejection

nginx - 为什么当我尝试挂载卷时 Docker 无法打开 nginx.conf?

node.js - "This site can’ t be reached"using Nginx as reverse proxy for Express Nodejs

nginx - kubernetes nginx 入口无法将 HTTP 重定向到 HTTPS

5000~ 用户的 Java Web 应用程序

sql - For循环遍历临时表

apache - 如何将nodejs和apache放在同一个80端口

node.js - 如何使缓存的 require.resolve() 结果无效