gpt4 book ai didi

node.js - 多个 Web dyno 在实时 socket.io Node.js 应用程序中有意义吗?

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

我正在为heroku 上的实时聊天应用程序开发一个node.js 后端。当我研究 dynos 以及扩展 Node.js 后端的方法时,我可以看到 dynos 在 http 服务器上的优势,因为每个 dynos 可以独立于其他 dynos(这在大多数情况下是可以的)。

我的问题是:如何扩展和处理实时 socket.io 应用程序的负载平衡?从我读到的内容来看,测功机是“沙盒”的容器:每个测功机运行自己的进程,独立于其他测功机。那么处理这个问题的最佳方法是什么?

我正在考虑一个解决方案,但它一点也不优雅或漂亮:

我可以有多个包含 cron 的后台作业,这些作业可以检查该实例上连接的用户的新消息..但我认为必须有更好的解决方案。

最佳答案

这个问题可以概括为如何让多个 Node 进程共享数据,无论它们位于相同还是不同的服务器上。据我所知,传统观点是让所有进程使用通用数据库(Postgres、Mongo、Redis)读取和写入数据。只需使用适合您需求的正确数据库即可。

另一个选项类似于 MessengerJS它允许进程间通信。我不知道这对于您的应用程序来说是否是一个好主意,因为这样您的所有测功机最终都会包含聊天数据的副本。然后,您需要确保测功机之间的所有内容都同步且一致。我更倾向于将数据库作为单一事实来源。

关于node.js - 多个 Web dyno 在实时 socket.io Node.js 应用程序中有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28554980/

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