2018电子商务中的负载平衡算法实现与分析
在电子商务发展迅速的今天,网络的运行状态,是电子商务能否顺利进行的有力保障,现有网络资源的利用率高低就一个重要问题,网络的负载平衡就是解决这个问题的方法之一,下面对几种常见的负载平衡方法,进行分析比较一、静态均衡算法
静态的负载平衡是指当一个请求到来时,将按照预先约定的匹配规则将该请求指派到一个特定的真实服务器。静态负载平衡算法主要任务是决定如何选择下一个节点,然后将新的服务请求转发给它。现在,针对不同的网络服务需求和配置已经有相当多的研究和应用,比较普遍的算法是:轮询 (Round Robin),散列(Source Hashing)等等。一个好的静态负载均衡算法也并不是万能的,它一般只在某些特殊的应用环境下才能发挥最大效用,静态负载平衡也是实现动态负载平衡的基础
轮询调度 (Round Robin Scheduling)算法就是以轮询的方式依次将请求调度不同的服务器,即每次调度执行i二(Q+l)mod n,选出第‘台服务器。这种算法的优点是简洁明确,无需记录当前连接的状态。
散列法通过单向的不可逆的哈希 (Hash)函数将请求发往集群节点。目标地址散列调度 (Destination Hashing Scheduling)算法先根据请求的目标IP地址,作为散列键 (Hash Key)从静态的散列表找出对应的服务器,若该服务器可用并且未超载,则将请求发送到该服务器。源地址散列调度 (Source HashingScheduling)则是将请求的源IP地址作为散列键从静态分配的散列表找出对应的服务器。
二、 动态均衡算法
在实际的访问过程中,很有可能存在这样情况,即有些节点已经超负荷运行,而其他节点基本上处于空闲状态;或者有些节点的处理任务已经很繁忙,但还有很长的请求队列,同时又不断地收到新的请求。这些情况都会导致客户端长时间的等待,使集群的整体服务质量下降。因此,有必要采用一种机制,使得平衡器能够实时地了解各个节点的负载状况,并根据负载的变化做出相应调整。
动态的负载平衡算法是根据系统当前的负载状况来调整任务划分。这类算法能及时、准确的把握各个节点的负载状况,并根据各个节点的资源使用状况来动态调整负载的分布。动态均衡算法将考虑每一个节点的实时负载和响应能力,不断调整任务分布的比例,避免有些节点超载时依然收到大量请求,从而提高集群的整体吞吐率。
最小连接调度(Least-Connection Scheduling)算法是一种典型的动态调度算法,它通过记录服务器当前活跃的连接数来估计服务器的负载情况,该算法把新的连接请求分配到当前含有最少连接数的节点。平衡器记录集群内各个服务器已建立连接的数目,当一个请求被调度到某台服务器后,该服务器连接数加1;当连接超时或访问结束后,其连接数减1。通常这种算法针对TCP连接进行,但由于不同应用对系统资源的消耗可能差异很大,而连接数量无法反映出真实的应用负载,因此在大规模应用时,该算法在效果上要打折扣。为了减少这个不利的影响,可对每个节点设置最大的连接数上限。
页:
[1]