负载主机可以提供很多负载均衡的方法,也就是我们常说的调度方法或算法:轮询(RoundRobin)这种方法会将接收到的请求分发到每台机器上在服务器集群中实际上是一个服务器。如果使用此方法,则所有标记到虚拟服务中的服务器都应具有相似的资源容量并加载相同的应用程序。如果所有服务器都具有相同或相似的性能,则选择此方法将使服务器负载相同。基于这个前提,循环调度是一种简单高效的请求分发方式。但是对于不同的服务器,选择这种方式意味着能力较弱的服务器在下一个周期也会接受roundrobin,即使该服务器已经无法处理当前的请求。这会导致能力较弱的服务器过载。加权轮询(WeightedRoundRobin)该算法解决了简单轮询调度算法的缺点:传入的请求按顺序分配给集群中的服务器,但考虑了预先分配给每个服务器的权重。管理员只是通过服务器的处理能力来定义每台服务器的权重。例如,服务器A的能力最高的权重为100,而能力最高的服务器的权重为50。这意味着在服务器B收到第一个请求之前,服务器A将连续收到2次请求,并且很快。最少连接数(LeastConnection)以上两种方法都没有考虑到系统无法识别在给定时间内保持了多少个连接。所以它可能发生,服务器B服务器接收的连接少于服务器A但它超载,因为服务器B上的用户打开的连接持续时间更长。这意味着连接数,即服务器上的负载,是累积的??。这个潜在的问题可以用“最少连接”算法来避免:传入的请求是根据每个服务器当前打开的连接数来分配的。也就是说,活动连接最少的服务器将自动接受下一个传入请求。基本上,原理与简单轮询相同:所有具有虚拟服务的服务器都应该具有相似的资源容量。值得注意的是,在低流量的配置环境下,每台服务器的流量是不一样的,会优先考虑第一台服务器。这是因为,如果所有服务器都相同,则优先选择第一个服务器,直到第一个服务器具有连续的活动流量,否则第一个服务器始终是首选。最少连接慢启动时间(LeastConnectionSlowStartTime)对于最少连接和加权最小连接调度方法,当一个服务器刚加入在线环境时,可以为其配置一个时间段。及时的连接数是有限的,增长缓慢。这为服务器提供了一个“过渡时间”,以确保服务器不会因启动后分配过多的连接而过载。该值在L7配置界面中设置。加权最少连接(WeightedLeastConnection)如果服务器的资源容量不同,那么“加权最少连接”方式更合适:由管理员根据服务器情况自定义的权重决定的活跃连接数一般提供服务器的一个非常好的价值。平衡利用率,因为它利用了最少数量的连接和权重。通常,这是一个非常公平的分配,因为它使用了连接数和服务器权重的比率;集群中比例最高的服务器自动接收下一个请求。但要注意,在低流量情况下使用此方法时,请参考“最小连接数”方法中的注意事项。基于代理的自适应平衡(AgentBasedAdaptiveBalancing)除了上述方法外,负载主机还包含一个自适应逻辑来定期监控服务器状态和服务器的权重。对于非常强大的“基于代理的自适应负载平衡”方法,负载主机通过这种方式定期检测所有服务器的负载:每个服务器必须提供一个包含文件,其中包含一个从0到99的数字,用于表示服务器实际负载(0=***,99=过载,101=失败,102=管理员禁用),服务器使用httpget方式获取该文件;同时对于集群中的服务器来说,以二进制文件的形式提供自己的负载状态也是服务器的工作之一,但是对于服务器如何计算自己的负载状态没有限制。根据服务器的整体负载情况,有两种策略可供选择:正常运行时,调度算法根据收集到的服务器负载值与分配给服务器的连接数的比值,计算出一个权重比。因此,如果服务器过载,权重将通过系统透明地重新调整。与加权循环调度一样,可以记录不正确的分配,以便可以有效地为不同的服务器分配不同的权重。但是,在非常低流量的环境中,服务器报告的负载值不会创建具有代表性的样本;基于这些值分配负载将导致失控和命令抖动。因此,在这种情况下,根据静重比计算载荷分配更为合理。当所有服务器的负载都低于管理员定义的下限时,负载主机会自动切换到加权轮询的方式来分发请求;如果负载大于管理员定义的下限,负载主机将切换回自适应方式。固定权重(FixedWeighted)***权重只有在其他服务器的权重值很低时才使用。但是,如果具有最高优先级的服务器掉线,下一个最高优先级的服务器将为客户端提供服务。这种方式需要根据服务器的优先级来配置每台真实服务器的权重。加权响应(WeightedResponse)流量调度是通过加权轮询。加权轮询中使用的权重是根据服务器可用性检查的响应时间计算的。每个有效性检查都定时标记它成功响应所需的时间。但需要注意的是,这种方法假设服务器心跳检测是基于机器的速度,但这种假设可能并不总是正确的。所有服务器对虚拟服务的响应时间总和相加,这个值用于计算单个服务物理服务器的权重;该重量值大约每15秒计算一次。源IP哈希(SourceIPHash)该方法生成请求的源IP的哈希值,并使用这个哈希值找到正确的真实服务器。这意味着对于同一个主机,它总是对应于同一个服务器。使用这种方式,你不需要保存任何源IP。但需要注意的是,这种方式可能会造成服务器负载不均衡。
