C\#Nginx 부 드 러 운 가중 폴 링 알고리즘 실현

본 논문 의 사례 는 C\#Nginx 부 드 러 운 가중 폴 링 알고리즘 을 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
코드 가 간단 하고 알고리즘 이 클래식 합 니 다! 
1.실체 클래스 정의

public struct ServerConfig
 {
  //    
  public int Weight {get;set;}

  //    
  public int Current {get;set;}

  //    
  public string Name {get;set;}
 }
2.알고리즘

public static int NextServerIndex(ServerConfig[] serverConfigArray)
 {
  int index = -1;
  int total = 0;
  int size = serverConfigArray.Count();
  for(int i = 0; i< size; i++)
  {
   serverConfigArray[i].Current += serverConfigArray[i].Weight;
   total += serverConfigArray[i].Weight;
   if (index == -1 || serverConfigArray[index].Current < serverConfigArray[i].Current)
   {
    index = i;
   }
  }
  serverConfigArray[index].Current -= total;
  return index;
 }
3.호출

static void Main(string[] args)
  {       
    var sv = new ServerConfig[] {
      new ServerConfig{Name="A", Weight = 4},
      new ServerConfig{Name="B", Weight = 2},
      new ServerConfig{Name="C", Weight = 1}
    };
    int index = 0;
    int sum = sv.Sum(m => m.Weight);
    for(int i=0; i<sum; i++)
    {
      index = NextServerIndex(sv);
      Console.WriteLine("{0}{1}", sv[index].Name, sv[index].Weight);
    }
    Console.Read();
  }
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기