循环轮询调度算法
循环调度
循环调度算法是通过轮询的方式将请求依次调度到不同的服务器上,即每次执行i = (i+1) mod n,选择第I个服务器。该算法的优点是简单,不需要记录当前所有连接的状态,因此是一种无状态调度。
轮询调度算法的原理是每次将用户的请求依次分配给内部系统中的服务器,从1开始,直到N(内部服务器的数量),然后再次开始循环。
轮询调度算法流程
假设有一组n个服务器,S = {S1,S2,…,Sn},一个指示变量I代表上次选择的服务器ID。变量I被初始化为N-1。一个经典的算法程序如下:
轮询调度算法假设所有服务器都具有相同的处理性能,而不管每个服务器的当前连接数和响应速度如何。当服务请求间隔变化较大时,轮询调度算法容易导致服务器间负载不均衡。
因此,这种平衡算法适用于服务器组中的所有服务器具有相同的硬件和软件配置并且平均服务请求相对平衡的情况。