>운영 및 유지보수 >엔진스 >로드 밸런싱을 위한 일반적인 알고리즘 소개

로드 밸런싱을 위한 일반적인 알고리즘 소개

王林
王林앞으로
2020-06-16 16:40:133966검색

로드 밸런싱을 위한 일반적인 알고리즘 소개

로드 밸런싱에 일반적으로 사용되는 알고리즘:

1. 라운드 로빈

라운드 로빈은 로드 밸런싱에서 기본적이고 간단한 알고리즘입니다. 구성 파일에 M개의 서버가 있다고 가정하면 알고리즘은 서버 노드 목록을 순회하고 노드 순서에 따라 각 라운드에서 하나의 서버를 선택하여 요청을 처리합니다. 모든 노드가 한 번 호출되면 알고리즘은 첫 번째 노드부터 다시 순회합니다.

특징:

이 알고리즘의 각 요청은 시간순으로 하나씩 서로 다른 서버에 할당되므로 각 서버가 동일한 부하를 전달하는 유사한 서버 성능을 가진 클러스터 상황에 적합합니다. 그러나 서버 성능이 다른 클러스터의 경우 이 알고리즘은 무리한 자원 할당과 같은 문제를 쉽게 일으킬 수 있습니다.

2. 가중 투표

일반적인 투표로 인한 불이익을 피하기 위해 가중 투표가 탄생했습니다. 가중치 기반 폴링에서는 각 서버가 자체 가중치를 갖습니다. 일반적으로 가중치 값이 클수록 서버 성능이 향상되고 더 많은 요청을 처리할 수 있음을 의미합니다. 이 알고리즘에서는 클라이언트 요청이 가중치에 비례하여 할당됩니다. 요청이 도착하면 가중치가 가장 큰 서버가 먼저 할당됩니다.

기능:

가중 폴링은 서버 성능이 다양한 클러스터에 적용되어 리소스 할당을 보다 합리적으로 만들 수 있습니다.

핵심 아이디어는 각 서버 노드를 순회하여 노드 가중치를 계산하는 것입니다. 계산 규칙은 현재_가중치와 해당 유효_가중치를 합산하여 각 순회 라운드에서 가장 큰 가중치를 갖는 노드를 최적의 서버 노드로 선택합니다. 그 중 Effective_weight는 알고리즘이 실행되는 동안 자원 상황과 응답 상황에 따라 변경됩니다.

3. IP 해시(IP 해시)

ip_hash는 요청한 클라이언트 IP의 해시 값을 기반으로 서버를 할당합니다. 이 알고리즘은 동일한 IP의 요청이 동일한 서버에 매핑되도록 할 수 있습니다. 동일한 해시 값이 다른 IP가 동일한 서버에 매핑됩니다.

특징:

이 알고리즘은 클러스터 배포 환경에서 세션이 공유되지 않는 문제를 어느 정도 해결합니다.

추천 튜토리얼: nginx 튜토리얼

위 내용은 로드 밸런싱을 위한 일반적인 알고리즘 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제