pde*_*eva 6 architecture scaling websocket autoscaling
解释这个问题:
假设有 100 个请求/秒到达。
因此,当我添加/删除服务器时,每台服务器的负载会自动平衡,因为每个连接的生命周期都很短。
假设有 100 个客户端,2 个服务器(在 LB 后面)
由于 websocket 连接是持久的,添加/删除服务器不会增加/减少每个服务器的负载,直到客户端决定重新连接。
那么如何有效地扩展 websockets 并管理每台服务器的负载?
这与游戏行业长期以来一直试图解决的问题类似。这是一个有许多并发连接的区域,并且必须在许多客户端之间进行快速通信。
选项:
这可以防止您的客户端炸毁单个服务器。在建立 WS 连接之前,您必须让客户端轮询主服务器,但这很简单。
这样,如果需要,您还可以扩展到多主机,并将它们放在负载均衡器后面。
如果您需要在服务器之间发送消息,有很多选择(您自己处理、队列等)。
这就是我去年构建的 Android 绘图应用程序 Pixmap 的工作原理。效果也很好。
客户端负载平衡,客户端连接到随机主机名。这就是 Watch.ly 的运作方式。为了安全起见,每个主机都可以成为自己的负载平衡器和服务器集群。有风险但简单。
传统的负载平衡 - 即循环法。很难击败 haproxy。这应该是您的第一个方法,并将扩展到数千个并发用户。但并没有解决重新分配负载的问题。通过此设置解决此问题的一种方法是将事件推送给您的客户端,告诉他们重新连接(并且每次尝试重新连接时都设置随机超时,这样您就不会杀死服务器)。
| 归档时间: |
|
| 查看次数: |
571 次 |
| 最近记录: |