我们正在开发一个WebSocket应用程序,该应用程序将在为我们的API提供服务的相同应用程序服务器上运行,这些应用程序服务器都位于新的 Amazon Application Load Balancer 的目标组中。
我不确定套接字升级后是否需要粘性会话,但是,使用侦听器转发规则应该可以轻松完成。
我担心的是在自动缩放目标组期间执行的扩展操作,特别是scale-in
操作。由于目前的扩展操作基于RequestCountPerTarget
,当实例因为该指标不高于阈值而终止时,这并不能保证实例没有活动的WebSocket连接。
我假设这意味着当实例关闭并终止时,那些套接字连接将突然中断。
scale-out
该组,以便在API请求之外更好地促进WebSocket扩展?我考虑在自动扩展组上创建一个SNS主题和LifecycleHook
实例终止,我可以在WebSocketHandler
处理,以便向该服务器上的所有套接字发送消息,他们将需要断开并连接到负载均衡器中的另一台服务器。