我有一个关于如何负载平衡网络套接字的问题。
我有一个支持 Web 套接字的服务器。浏览器连接到我的站点,每个浏览器都打开一个 Web 套接字到www.mydomain.com. 这样,我的社交网络应用程序就可以向客户推送消息。
传统上,只使用 HTTP 请求,我会通过在两个 Web 服务器前面添加第二个服务器和一个负载平衡器来扩展。
使用 Web 套接字,连接必须直接与 Web 服务器,而不是负载均衡器,因为如果机器的物理限制为 64k 开放端口,并且客户端正在连接到负载均衡器,那么我无法支持超过 64k 并发用户。
那我怎么——
让客户端在页面加载时直接连接到 Web 服务器(而不是负载均衡器)?每次最初请求页面时,我是否只是从节点加载 JavaScript,负载均衡器(或其他)随机修改脚本的 URL?
处理波纹启动?当 Web 服务器关闭时,浏览器会注意到连接已关闭。我可以编写 JavaScript 代码来尝试重新打开连接,但节点会消失一段时间。所以我想我必须回到负载均衡器来查询下一个要使用的节点的地址?
我确实想知道负载平衡器在初始请求上发送重定向,以便浏览器最初请求
www.mydomain.com并被重定向到www34.mydomain.com. 这工作得很好,直到节点出现故障——而像 Facebook 这样的网站不会这样做。他们是怎么做到的呢?