【问题标题】:Load balancer - how to write one for a custom application?负载均衡器 - 如何为自定义应用程序编写一个?
【发布时间】:2011-02-23 20:30:10
【问题描述】:

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

我的问题是网络负载平衡器一般是如何工作的?

我听说过循环和其他算法,但我没有得到答案的是这个过程到底是如何进行的?在套接字方面。

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

这更像是一个笼统的问题。你会怎么做呢?

谢谢大家!

【问题讨论】:

    标签: load-balancing


    【解决方案1】:

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

    Microsoft 在 Windows 中内置了负载平衡功能,它完全基于软件。它非常好并且易​​于设置。

    不过,我将介绍实际路线。

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

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

    【讨论】:

    • 看来我错过了你的答案......无论如何,经过这么长时间(大约 3.5 个月!) - 我要感谢你抽出时间回复。你确实用“粘性”选项给了我消息(:
    猜你喜欢
    • 1970-01-01
    • 2020-02-25
    • 2018-02-26
    • 2017-07-28
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多