gpt4 book ai didi

Node.js 多服务器集群

转载 作者:IT老高 更新时间:2023-10-28 22:10:25 38 4
gpt4 key购买 nike

我正在使用 Node.js 开发一个涉及服务器的项目(为了简单起见,我们将这个服务器想象成一个聊天服务器,它必须将消息从某些客户端转发到其他客户端)。出于 QoS 的原因,我需要该服务器始终可访问,因此我想使用集群来分配不同服务器(不同物理机)之间的平衡负载,并确保如果一台服务器出现故障,另一台将准备好为请求提供服务.

我的问题是:这种分布式方法在 Node.js 中可行吗?

我已经阅读了“集群”模块,但据我了解,它似乎只能在同一台机器上的多处理器上扩展。

最佳答案

是的,这是可能的。

这不是 NodeJS 的属性,而是您为应用程序设计的架构将决定您是否可以这样做。

您的主要问题始终是在您的实例之间共享状态,因此假设您有 4 个聊天服务器 A B C D,并且您有一个 LoadBalancer L,它将连接分布在 4 个服务器之间,然后当 A 出现故障时,您重新连接所有 A与其余实例的连接,您如何确保聊天室的状态在 B C 和 D 上相同?

一种方法是让应用程序代码完全无状态,并将所有数据推送到内存中的分布式数据库,例如 mongoDb 或 Redis。您希望在其中一个数据库实例出现故障时分发数据库。

现在你的最后一个问题是 LoadBalancer。如果出现问题,您的整个系统都将关闭。

长话短说;是的,你可以做到,但你需要做出一些艰难的决定,决定你的潜在失败点在哪里。如果您不希望出现单点故障,您将需要一个复杂且昂贵的设置。

关于Node.js 多服务器集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15501997/

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