2

如果我有一个 Web 应用程序在 3 台支持 Web 套接字的机器上运行,并且一个客户端连接到其中一台,那么每个请求是否总是发送到同一台机器,或者负载均衡器可以将它发送到不同的机器吗?

基本上,一旦网络浏览器通过网络套接字建立连接,负载平衡器可以将每个请求发送到不同的服务器吗?

如果是这样,哪些负载均衡器可以做到这一点?

此外,如果我使用类似框架的氛围来检测浏览器兼容性并选择适当的协议,这将如何影响负载平衡机会?

4

2 回答 2

3

正如在通过 HTTP 协议完成握手后Wikipedia 上 websockets 协议的基本描述中所述,其他通信是通过与确切服务器的持久TCP 连接执行的。

因此,通常的 HTTP 含义中不会有“请求”,只有 2 个端点(服务器和客户端)交换数据。这就是为什么通常意义上的负载平衡是不可能的(并且通常不需要,因为服务器能够同时处理很多同时的 TCP 连接——关于这一点的很好的讨论在这里)。这就是为什么通过 websocket 发送的数据总是会被正确的服务器机器(期待它的机器)接收。

如果你真的需要这个,你可以使用上面提到的帖子中描述的 L3 负载均衡器。

于 2013-08-12T14:34:34.433 回答
0

“基本上,一旦网络浏览器通过网络套接字建立连接,负载平衡器可以将每个请求发送到不同的服务器吗?”

如果这是您想要的操作,是的。

Riverbed 有一个软件负载均衡器可以实现这一点。 https://splash.riverbed.com/docs/DOC-1451

于 2013-10-21T16:40:42.047 回答