我写了一个简单的服务器应用程序,它将在几台机器上运行.
我的问题是网络负载均衡器如何工作?
我听说过循环法和其他算法,但我没有得到答案的是这个过程到底是怎么回事?在套接字方面.
客户端连接到其中一台负载均衡器机器,要求"免费连接"服务器并简单地连接到它?
这是我能想到的最简单的方式.
..或者,它是否使用负载均衡器作为代理(这意味着所有NB必须始终连接到应用程序服务器,数据是通过它们传输的)?
这更像是一个普遍的问题.你会怎么做?
谢谢你们!
有几种不同的方法可以对应用程序进行负载平衡.有些是位于路由器和服务器之间的物理设备; 一些是基于软件的,在每个负载平衡设备上运行一些代码.
Microsoft在Windows中内置了负载均衡功能,它基于软件.这很好,也很容易设置.
但是,我将介绍物理路线.
这里有几种算法,但主要的是Round Robin,可选择"粘性"会话.在这种情况下,粘滞意味着负载均衡器将尝试保留客户端的历史记录并将来自同一客户端的请求转发到同一台计算机.这意味着负载均衡器需要保留客户端列表以及它指向这些客户端的位置.根据缓存大小,客户端可能会从列表中删除,并且在将来的请求中,它们可能会转发到其他服务器.
Round Robin是一个非常简单的想法.对于每个请求,将其发送到列表中的下一个服务器.更复杂的算法可能会考虑到特定服务器的请求数量以及这些请求需要多长时间; 然后尝试重新平衡新请求以支持更快的服务器.这部分很复杂.