gpt4 book ai didi

node.js - 服务器端应用程序的可扩展性,最佳方法

转载 作者:太空宇宙 更新时间:2023-11-03 22:13:32 25 4
gpt4 key购买 nike

我正在编写一个服务器端应用程序,它将管理来自以下位置的请求:

  • 游戏客户端
  • 网站(HTTP 请求)
  • API

到目前为止,我只对每种类型的请求使用一个(NodeJS)应用程序,问题是随着用户群的不断增长,这种方法将产生瓶颈。

Actual architetture

我想要一些关于如何开发服务器端架构以使其可扩展的建议。

据我所知,唯一的解决方案是使用运行相同应用程序的多个服务器,这些服务器将共享相同的内存(Redis 服务器)。

在nodeJS中是否可以将这些类型的请求的管理拆分到多个服务器上?也许每种类型的请求都有一个或多个服务器?

目前我正在使用:

  • NodeJS
  • Redis
  • MySQL
  • express
  • Socket.io

提前致谢,您能推荐一些有关此问题的书籍吗?

最佳答案

在一台机器上,您可以使用node.js Cluster 模块( https://nodejs.org/api/cluster.html )来处理多核架构的强大功能。

我认为将 API 和网站拆分到不同的应用程序上是一个好主意。如果您决定在一台计算机上运行多个 Node.js 应用程序,请尝试使用 pm2 ( http://pm2.keymetrics.io/ )。您可能可以将 API 拆分为一堆小型应用程序 - 这称为微服务架构。我个人不喜欢微服务方法,您可以在网上查看优缺点。

此外,如果您将应用程序(或一堆应用程序)部署在不同的虚拟/物理机上(这在生产中很常见),您可以使用 haproxy 来平衡和容错(http://www.haproxy.org/)。

关于node.js - 服务器端应用程序的可扩展性,最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35553681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com