nginx upstream 스케줄 링 정책
4894 단어 Stream
nginx upstream 스케줄 링 정책
블 로그 분류:
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;
}
폴 링 스케줄 링 알고리즘(라운드-로 빈 스케줄 링)
폴 링 스 케 쥴 링 알고리즘 은 사용자 의 요청 을 내부 서버 에 돌아 가면 서 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;
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;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
windows phone 개발 학습 - 스티커 [속]지난번에 마이크로소프트가 제시한 스티커의 구조에 따라 업데이트할 수 있다고 언급했지만, 분명히 그렇게 하면 아래의 효과를 실현할 수 없다. 내 달력 응용 프로그램에서 매일 업데이트가 필요하다는 것을 고려하여tile ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.