代码之家  ›  专栏  ›  技术社区  ›  Poni

负载均衡器-如何编写一个自定义应用程序?

  •  7
  • Poni  · 技术社区  · 16 年前

    我已经编写了一个简单的服务器应用程序,它将在多台机器上分布式运行。

    我的问题是,一般来说,网络负载均衡器是如何工作的?

    我听说过循环法和其他算法,但我没有答案的是这个过程到底是如何进行的?就插座而言。

    客户机连接到一台负载均衡器机器,请求一个“免费连接到”服务器,然后简单地连接到它?
    这是我能想到的最简单的方法。
    .. 或者,它是否使用负载均衡器作为代理(这意味着所有nb必须始终连接到应用服务器,并且数据通过它们传输)?

    这更像是一个一般性的问题。你会怎么做?

    谢谢大家!

    1 回复  |  直到 15 年前
        1
  •  13
  •   ChrisLively    16 年前

    有几种不同的方法来平衡应用程序的负载。有些是位于路由器和服务器之间的物理设备;有些是基于一些代码的软件,这些代码在每个负载平衡设备上运行。

    微软在Windows系统中内置了负载平衡功能,这一切都是基于软件的。它很好而且很容易安装。

    不过,我会介绍物理路线。

    这里有几种算法,但最主要的是循环调度,其中有一个选项用于“粘性”会话。在这种情况下,粘性意味着负载平衡器将 尝试 保存客户端的历史记录并将来自同一客户端的请求转发到同一台计算机。这意味着负载平衡器需要保留一个客户机列表以及它将这些客户机定向到的位置。根据缓存的大小,客户端可能会从列表中消失,并且在将来的请求中,它们可能会被转发到不同的服务器。

    循环是一个非常简单的想法。对于传入的每个请求,将其发送到列表中的下一个服务器。更复杂的算法可能会考虑到有多少请求进入特定的服务器,以及这些请求需要多长时间;然后尝试重新平衡新请求以支持更快的服务器。但这部分很复杂。