Spring Cloud 는 어떻게 리본 부하 균형 모드 를 전환 합 니까?
Spring Cloud Ribbon 은 HTTP 와 TCP 를 기반 으로 하 는 클 라 이언 트 부하 균형 도구 로 넷 플 릭 스 Ribbon 을 기반 으로 이 루어 집 니 다.Spring Cloud 의 패 키 징 을 통 해 서 비 스 를 위 한 REST 모드 요청 을 클 라 이언 트 부하 균형 있 는 서비스 호출 로 쉽게 전환 할 수 있 습 니 다.Spring Cloud Ribbon 은 도구 류 프레임 워 크 일 뿐 서비스 등록 센터,배치 센터,API 게 이 트 웨 이 처럼 독립 적 으로 배치 해 야 하 는 것 은 아니 지만 모든 Spring Cloud 가 구축 한 마이크로 서비스 와 인 프 라 에 거의 존재 한다.마이크로 서비스 간 호출,API 게 이 트 웨 이 요청 퍼 가기 등 내용 은 사실상 Ribbon 을 통 해 이 루어 집 니 다.후속 으로 저희 가 소개 할 Feign 을 포함 하여 Ribbon 을 기반 으로 하 는 도구 이기 도 합 니 다.따라서 Spring Cloud Ribbon 에 대한 이해 와 사용 은 우리 가 Spring Cloud 를 사용 하여 마이크로 서 비 스 를 구축 하 는 데 매우 중요 하 다.
Ribbon 은 우리 에 게 많은 부하 균형 알고리즘 을 제공 했다.예 를 들 어 폴 링,랜 덤 등 이다.우 리 는 스스로 알고리즘 을 정의 할 수 있다.그러면 Ribbon 은 기본적으로 어떤 모델 을 사용 하 는 지 테스트 할 수 있다.우 리 는 여기 서 세 개의 서비스 제공 자,한 서비스 소비 자 를 시작 했다.다음 그림 과 같다.
테스트 클래스
@SpringBootTest
@RunWith(SpringRunner.class)
public class LoadBalanceTest {
@Autowired
private RibbonLoadBalancerClient client;
@Test
public void test(){
for (int i = 0; i < 50; i++) {
ServiceInstance instance = client.choose("service-provider");
System.out.println(instance.getHost()+":"+instance.getPort());
}
}
}
출력 결과
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
이것 은 폴 링 모델 임 을 뚜렷하게 알 수 있 기 때문에 Ribbon 은 폴 링 의 부하 균형 모델 을 기본적으로 사용 한 다 는 것 을 증명 할 수 있다.그렇다면 부하 균형 모드 를 어떻게 바 꿉 니까?
설정 파일 에 아래 단락 만 설정 하면 됩 니 다.(yml 을 예 로 들 면)
{ }:
ribbon:
NFLoadBalancerRuleClassName: {IRule }
예 를 들 어 나의 설정 은 다음 과 같다.
service-provider:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
선택 가능 한 모드 는 다음 과 같 습 니 다.이것 은 모두 IRule 의 실현 클래스 입 니 다.랜 덤 모드 로 전환 하 는 효 과 는 어떤 가요?설정 수정 후 테스트 클래스 다시 실행
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8890
LAPTOP-LFAOC6JB:8888
LAPTOP-LFAOC6JB:8889
LAPTOP-LFAOC6JB:8889
운행 결과 가 무 작위 로 바 뀌 었 음 을 알 수 있다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.