我正在开发一个实时通知服务,使用 Node.js 和 Express、MongoDB 进行数据存储,以及 Socket.IO 进行实时通信。该服务旨在集成到各种网站中。然而,当我将此服务集成到一个拥有超过 100,000 个用户的网站时,后端会遇到性能问题,并且难以处理大量连接。
以下是我的设置概述:
尽管采用这种配置,后端在重负载下仍会出现性能下降。我可以通过哪些优化来提高后端高效处理大量连接的能力?
我考虑了潜在的解决方案,例如负载平衡、优化数据库查询和水平扩展。但是,我不确定最好的方法,并且希望社区提供任何见解或建议。
提前感谢您的帮助!
您的第一步应该是具体找出性能下降发生的位置,尝试设置监控和计时以找出瓶颈发生的位置,否则任何人都很难为您提供有意义的建议。
通常水平扩展和负载平衡从来都不是坏主意,但您会产生额外的服务器成本。如果您的问题是 mongoDB 吞吐量瓶颈,优化查询只会提高性能。 Node.js 也是单线程的,为了充分利用所有核心和线程,您需要工作线程、子进程或机器上的多个 Node.js 服务器。
但是,在您能够准确找出问题所在之前,我不建议您做任何事情