nginx upstream 스케줄 링 정책

4894 단어 Stream
nginx upstream 스케줄 링 전략-류 쟁 의 블 로그 var liuzheng={name:"류 쟁",spoken:"배우 고 실천 하고,배우 고,생각 하고,편집 하고,간소화 하고,거리 가 비슷 하 다"}-ITeye 기술 사이트
nginx upstream 스케줄 링 정책
블 로그 분류:
  • nginx

  • nginx
    round-robin  
    그 전에 nginx 의 upstream 을 사 용 했 는데 오늘 어떤 친구 가 저 에 게 upstream 의 이동 알고리즘 이 무엇 이 냐 고 물 었 습 니 다.저 는 정말 주의 하지 않 았 다 고 말 했 습 니 다.Haproxy 를 사용 할 때 주의 한 적 이 있 습 니 다.돌아 와 보 니 round-robin 이 었 습 니 다.다음은 nginx 공식 문서 에서 설명 한 것 입 니 다.This module provides simple load-balancing(round-robin and client IP)across backend server.예제:
    자바 코드
     
  • upstream backend {  
  •   server   backend1.example.com;  
  •   server   backend2.example.com;  
  •   server   backend3.example.com  down;  
  •   server   backend4.example.com;  
  • }  
  • upstream backend {
      server   backend1.example.com;
      server   backend2.example.com;
      server   backend3.example.com  down;
      server   backend4.example.com;
    }

     
     
    폴 링 스케줄 링 알고리즘(라운드-로 빈 스케줄 링)
    폴 링 스 케 쥴 링 알고리즘 은 사용자 의 요청 을 내부 서버 에 돌아 가면 서 1 부터 N(내부 서버 개수)까지 분배 한 뒤 다시 순환 하 는 원리 다.
    알고리즘 의 장점 은 간결 성 이다.현재 모든 연결 상 태 를 기록 할 필요 가 없 기 때문에 무상 태 스케줄 링 이다.
    폴 링 스케줄 링 알고리즘 프로 세 스
    서버 N 대,S={S1,S2,...,Sn}이 있다 고 가정 하면 지시 변수 i 는 지난번 에 선택 한 서버 ID 를 표시 합 니 다.변수 i 가 N-1 로 초기 화 되 었 습 니 다.그 알고리즘 은 다음 과 같다.
     
     
    자바 코드
     
  • j = i;  
  •   
  • do  
  •   
  • {  
  •   
  • j = (j + 1) mod n;  
  •   
  • i = j;  
  •   
  • return Si;  
  •   
  • } while (j != i);  
  •   
  • return NULL;  
  • j = i;
    
    do
    
    {
    
    j = (j + 1) mod n;
    
    i = j;
    
    return Si;
    
    } while (j != i);
    
    return NULL;

     
     
    WiKi
    In computing, "round-robin" describes a method of choosing a resource for a task from a list of available ones, usually for the purposes of load balancing . Such may be distribution of incoming requests to a number of processors, worker threads or servers. As the basic algorithm, the scheduler selects a resource pointed to by a counter from a list, after which the counter is incremented and if the end is reached, returned to the beginning of the list. Round-robin selection has a positive characteristic of preventing starvation , as every resource will be eventually chosen by the scheduler, but may be unsuitable for some applications where affinity is desirable, for example when assigning a process to a CPU or in link aggregation .
     
     
    물론 nginx 는 이 알고리즘 뿐만 아니 라 ip 도 제공 합 니 다.hash 방법,이 방법 은 하나의 ip 을 항상 같은 server 에 전송 합 니 다.
    ip_hash
    This directive causes requests to be distributed between upstreams based on the IP-address of the client. The key for the hash is the class-C network address of the client. This method guarantees that the client request will always be transferred to the same server. But if this server is considered inoperative, then the request of this client will be transferred to another server. This gives a high probability clients will always connect to the same server.
    It is not possible to combine ip_hash and weight methods for connection distribution. If one of the servers must be removed for some time, you must mark that server as *down*.
     
    자바 코드
     
  • upstream backend {  
  •   ip_hash;  
  •   server   backend1.example.com;  
  •   server   backend2.example.com;  
  •   server   backend3.example.com  down;  
  •   server   backend4.example.com;  
  • }  
  • upstream backend {
      ip_hash;
      server   backend1.example.com;
      server   backend2.example.com;
      server   backend3.example.com  down;
      server   backend4.example.com;
    }

    좋은 웹페이지 즐겨찾기