基于循环加权轮的算法php实现代码
< PHP
*
* Copyright(C)fathong
* /
*数据初始化,重量:重量
为主机{'a' } =阵列('weight ' = 5,'current_weight ' = 0,count= 0);
主机B } = {美元阵列('weight ' = 3,'current_weight ' = 0,count= 0);
{ } = $主机C数组('weight ' = 2,'current_weight ' = 0,count= 0);
结果=数组();
10次仿真
($ i = 0;$ i < 10;$ + +){
round_robin(美元的主机,导致美元);
}
输出
print_r($结果);
轮/罗宾循环
功能round_robin(美元的主机,导致美元)
{
总计= 0;
$ = null;
foreach(美元美元美元关键主机=项目){
当前= $主机;
目前'weight美元美元重量= {};
目前'current_weight } = {美元的美元权重;
总计=重量;
如果最好的= = null(($(美元美元} { 'current_weight主机{最好的} < | |)
目前美元'current_weight ' })){
{
$ =密钥;
}
}
{ } {美元美元主机最好'current_weight} = $总;
{ } {美元美元主机最好count} + +;
$结果最好;
}
输出结果:
阵列
(
{ 0 }
{ 1 }
{ 2 }
{ 3 }
{ 4 }
{ 5 }
{ 6 }
{ 7 }
{ 8 }
{ 9 }
)
在负载平衡服务器中,实现算法是循环加权循环,即后端服务器列表中每个服务器的权重,这表示其采用的概率。
这段代码以最简洁的过程出来,不考虑后端的挂等,你可以知道它是如何实现的,仅供参考。