【问题标题】:Load balancing web sockets and long-polling负载平衡 Web 套接字和长轮询
【发布时间】:2013-08-13 11:58:47
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: http nginx websocket load-balancing haproxy


    【解决方案1】:

    basic description of websockets protocol on Wikipedia 中所述,在通过 HTTP 协议完成握手后,其他通信通过 持久 TCP 连接与确切的服务器执行。

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2016-10-16
        • 1970-01-01
        • 2013-10-09
        • 2015-04-01
        • 2020-02-08
        • 2014-01-06
        • 1970-01-01
        • 1970-01-01
        • 2018-04-29
        相关资源
        最近更新 更多