Ribbon 부하 균형 사용 방식 (Eurka 와 함께 사용)
4430 단어 springCloud
부하 균형 은 시스템 의 높 은 사용 가능, 네트워크 압력 의 완화 와 처리 능력 의 확대 에 중요 한 수단 중 하나 이다.
2. 서버 측 부하 균형 과 클 라 이언 트 부하 균형
1) 서버 측 부하 균형
우리 가 일반적으로 말 하 는 부하 균형 은 서버 측의 부하 균형 을 가리 키 는데 그것 은 하드웨어 와 소프트웨어 부하 균형 방식 으로 나 뉜 다.
* 하드웨어 부하 균형: 서버 노드 간 에 부하 균형 에 사용 되 는 장 치 를 전문 적 으로 설치 합 니 다. 예 를 들 어 F5 등 입 니 다.
* 소프트웨어 부하 균형: 서버 에 균형 부하 기능 이나 모듈 을 가 진 소프트웨어 알 리 를 설치 하여 배포 요청 을 완성 합 니 다. 예 를 들 어 Nginx 등 입 니 다.
2) 클 라 이언 트 부하 균형
서버 측 부하 균형 과 가장 큰 차이 점 은 서비스 목록 에 저 장 된 위치 에 있다.
* 서버 측 부하 균형 에서 하드웨어 나 소프트웨어 장 치 는 사용 가능 한 서버 목록 을 유지 하고 심장 박동 검 사 를 통 해 고장 난 서버 노드 를 제거 하여 목록 에 내 가 정상적으로 접근 할 수 있 는 노드 임 을 확보한다.
* 클 라 이언 트 부하 균형 에서 모든 클 라 이언 트 노드 는 자신 이 방문 할 서버 목록 을 유지 해 야 합 니 다.이 서버 들 의 목록 은 서비스 등록 센터 에서 나온다.심장 박동 을 통 해 서버 목록 의 건강 을 유지 하려 면 서비스 등록 센터 의 협조 가 필요 하 다.
Ribbon 도입 에 필요 한 의존:
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-starter-ribbon
org.springframework.cloud
spring-cloud-starter-config
yml 설정 eureka 군집 설정:
eureka:
client:
register-with-eureka: false
service-url:
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
ConfigBean 설정 클래스 수정:
1. RestTemplate 추가 @ LoadBalanced 를 수정 하여 부하 균형 을 엽 니 다.
2. Ribbon 방법 부하 균형 전략 추가:
@Bean
public IRule muRule() {
// return new RoundRobinRule();//
return new RandomRule();//
}
간단 한 부하 균형 설정 이 완료 되 었 습 니 다. 다음은 ConfigBean 전체 코드 를 설치 합 니 다.
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
@Configuration
public class ConfigBean {
@Bean
@LoadBalanced // ribbon
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
@Bean
public IRule muRule() {
// return new RoundRobinRule();//
return new RandomRule();//
}
}
Ribbon 자체 부하 균형 전략 소개:
정책 이름
전략 성명
정책 설명
실현 설명
BestAvailableRule
public class BestAvailableRule extends ClientConfigEnabledRoundRobinRule
최소 병렬 요청 서버 선택
서버 를 하나씩 살 펴 보고 서버 가 tripped 되면 무시 합 니 다. 그 중에서 ActiveRequestsCount 의 가장 작은 server 를 선택 하 십시오.
AvailabilityFilteringRule
public class AvailabilityFilteringRule extends PredicateBasedRule
계속 연결 에 실 패 했 기 때문에 circuit tripped 로 표 시 된 백 엔 드 server 를 걸 러 내 고, 높 은 병렬 백 엔 드 server (active connections 가 설정 한 한도 값 을 초과 함) 를 걸 러 냅 니 다.
필터 서버 의 논 리 를 포함 하 는 Availability Predicate 를 사용 합 니 다. 사실은 status 에 기 록 된 각 server 의 운행 상 태 를 검사 하 는 것 입 니 다.
WeightedResponseTimeRule
public class WeightedResponseTimeRule extends RoundRobinRule
해당 시간 에 따라 하나의 weight 를 분배 하고 해당 시간 이 길 수록 weight 가 작 을 수록 선 택 될 가능성 이 낮 습 니 다.
하나의 배경 스 레 드 는 status 에서 평가 응답 시간 을 정기 적 으로 읽 고 모든 server 에 하나의 weight 를 계산 합 니 다.Weight 의 계산 도 비교적 간단 합 니 다. responsetime 에서 각 server 의 평균 responsetime 을 빼 는 것 은 server 의 가중치 입 니 다.처음 실행 되 었 을 때 statas 가 형성 되 지 않 았 을 때 roubine 정책 으로 server 를 선택 하 십시오.
RetryRule
public class RetryRule extends AbstractLoadBalancerRule
선 택 된 부하 균형 전략 기 에서 재 시도 메커니즘.
설정 시간 동안 server 를 선택 하지 못 하면 subRule 방식 으로 사용 가능 한 server 를 선택 하려 고 시도 합 니 다.
RoundRobinRule
public class RoundRobinRule extends AbstractLoadBalancerRule
roundRobin 방식 폴 링 선택 server
폴 링 index, index 가 대응 하 는 위 치 를 선택 한 server
RandomRule
public class RandomRule extends AbstractLoadBalancerRule
서버 를 무 작위 로 선택
index 에서 랜 덤 으로 index 가 대응 하 는 위 치 를 선택 한 server
ZoneAvoidanceRule
public class ZoneAvoidanceRule extends PredicateBasedRule
서버 가 있 는 지역 의 성능 과 서버 의 가용성 을 복합 적 으로 판단 하 는 서버
Zone Avoidance Predicate 와 Availability Predicate 를 사용 하여 서버 를 선택 할 지 여 부 를 판단 합 니 다. 이전 판단 은 하나의 zone 의 운행 성능 이 사용 가능 한 지 여 부 를 판단 하고 사용 할 수 없 는 zone (모든 server) 을 제거 합 니 다. Availability Predicate 는 연결 수가 너무 많은 서버 를 걸 러 내 는 데 사 용 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ribbon 부하 균형 사용 방식 (Eurka 와 함께 사용)* 하드웨어 부하 균형: 서버 노드 간 에 부하 균형 에 사용 되 는 장 치 를 전문 적 으로 설치 합 니 다. * 소프트웨어 부하 균형: 서버 에 균형 부하 기능 이나 모듈 을 가 진 소프트웨어 알 리 를 설치 하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.