【发布时间】:2023-03-06 12:17:01
【问题描述】:
我才刚刚开始理解和解决这个问题。
Node.js 的 Socket.io 或 Go 的 Gorilla websocket 解决方案每个实例都有一个连接池。因此,在每个实例中,我都可以说“向客户端 xxx 发送消息”。
但是,当我尝试水平扩展(通过生成其他实例)时,每个实例都有自己的客户端连接池,因此尝试向连接到另一个实例的特定客户端发送消息会失败。我认为这是因为当前实例无权访问该实例的连接/内存池。
我知道 ECS 会自动水平扩展 docker 容器,如果我要在 ECS 上启动一个 WS 服务器项目并让它扩展另一个实例到该服务,AWS 是否会神奇地处理套接字服务器实例之间的对话 - 还是我必须处理那个?
【问题讨论】:
-
AWS 不会将您的 websocket 会话绑定到特定实例。要搜索的关键字:AWS ALB(支持 WebSockets)、SocketCluster。
标签: javascript amazon-web-services amazon-ecs