我有一个运行的应用程序:
> Nginx的一个实例作为前端(提供静态文件)
>后端的node.js应用程序集群(使用cluster和expressjs模块)
> Postgres的一个实例作为DB
如果应用程序需要可伸缩性(这仅适用于HTTP / REST请求),则此体系结构是否足够:
>每秒500个请求(每个请求仅从DB中获取数据,这些数据可能是几个ko,并且在获取后不需要大量计算).
> 20000个用户同时连接
哪里可能是瓶颈?
最佳答案
对于指定的负载(500个简单请求/秒),我不会认为这会是一个太大的问题.我的猜测是,甚至不需要一组节点实例.
原文链接:https://www.f2er.com/nginx/434311.html但是,由于您只有一个实例,因此在扩展时,这很可能是您的瓶颈.您还遇到了额外的问题,这将是您的单点故障(我不熟悉Postgres,这里正在使用Oracle集群和数据保护,这意味着我们有一个备份数据库集群来缓解这种情况) .
如果您不需要关系数据模型,那么MongoDB可能是一个更具伸缩性的选择.
另外要记住的是网络基础设施.如果要添加群集/节点,请确保网络可以处理分布式负载.
最后一件事:通常,无法确定架构上的应用程序是否可以在没有性能/体积/压力测试的情况下处理特定负载,因此答案是响亮的“可能”.