重新连接间隔

Reconnect Interval

我正在寻找处理服务器重启的最佳实践。具体来说,我将股票价格推送给使用 websockets 的日间交易模拟网络应用程序的用户。我有 10k 并发用户。为了确保响应式用户体验,我在触发 onclose 事件时重新连接到 websocket。随着我们用户群的增长,我们不得不扩展我们的硬件。除了更好的硬件外,我们还在重新连接之前实施了随机延迟。这样做的目的是在服务器每晚重新启动时分散握手的涌入(持续部署)。然而,我们的一些用户的互联网(isp 和/或 wifi)很差。他们的联系不断中断。对于这些用户,我希望他们立即重新连接。这个问题有没有没有上述权衡的解决方案?

这个问题需要主观回答,这是我的:)

  • 区分客户端断开连接和服务器关闭: 这可以通过在 websocket 上发送关闭消息来实现,以便活动客户端可以准备并以随机延迟重新连接。因此,遇到 onclose 事件而没有正确关闭广播的客户端将能够尽快重新连接。这意味着需要修改客户端应用程序以解决此特殊关机事件。

  • Handle the handshake load: 一些网络服务器可以处理传入的连接作为异步并行事件队列,因此最多 X 个连接将同时初始化(并行),其他连接将等待排队直到轮到他们。这允许保护服务器性能,因此 websocket 握手将根据服务器的真实处理能力自动延迟。当然,这意味着 Web 服务器技术的改变,并且取决于您的用例。