【전잔의 길】 마이크로서비스 과정 9_Ribbon 심층 분석

기본 규칙

  • Round Robin Rule: 시스템의 기본 규칙이자 비교적 많은 규칙을 사용합니다.간단한 폴링 서비스 목록을 통해 서버를 선택하고, 다른 규칙은 많은 경우에 RoundRobinRule을 사용합니다..
  • Availability Filtering Rule: 말 그대로 유효성 필터링 규칙입니다.이 규칙은 서버를 무시합니다: 연결할 수 없는 서버: 기본적으로 세 번의 연결이 실패하면 서버는 "쇼트"상태로 설정됩니다. 이 상태는 30초 동안 지속되고, 다시 연결이 실패하면 "쇼트"상태의 지속 시간은 기하급수적으로 증가합니다.niws를 수정할 수 있습니다.loadbalancer.연결 실패 횟수를 설정하기 위해 connectionFailureCountThreshold 속성을 설정합니다.높은 병렬 수가 높은 서버: 이 서버에 연결된 병렬 수가 너무 높으면 이 규칙에 무시되어 수정할 수 있습니다.ribbon.ActiveConnectionsLimit 속성을 사용하여 최대 동시 수를 설정합니다
  • Weighted Response Time Rule: 모든 서버에 가중치를 부여합니다. 서버의 응답 시간이 길수록 이 가중치는 적습니다. 이 규칙은 랜덤으로 서버를 선택하고 이 가중치가 서버의 선택을 결정할 수 있습니다
  • Zone AvoidanceRule: 이 규칙은 지역, 사용 가능한 서버를 바탕으로 서버 선택을 합니다.Zone을 사용하여 서버를 분류하면 랙 또는 기계실로 이해할 수 있습니다
  • BestAvailableRule: "단거리"서버를 무시하고 병렬 수가 낮은 서버를 선택합니다..
  • RandomRule: 말 그대로 사용 가능한 서버를 무작위로 선택합니다..
  • Retry Rule: 다시 시도하는 선택 논리가 있습니다. Round Robin Rule 선택 서버를 사용하여 연결할 수 없으면 서버를 다시 선택합니다..

  • 코드 구성

    /**
     *  Ribbon 
     *  : @ComponentScan , Ribbon Client 。
     */
    @Configuration
    public class RibbonConfiguration {
      @Bean
      public IRule ribbonRule() {
        //  , 
        return new RandomRule();
      }
    }

    속성 구성 (권장)


    속성 설정의 우선순위가 코드 설정보다 높습니다.
    shop-provider-user:
        ribbon:
          NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

    기아 로드


    기본적으로 리본은 불러오기 게으르다. 리본 관련 클래스를 처음 요청해야 초기화되며, 첫 번째 요청이 너무 느린 문제를 초래할 수 있다. 리본이 응용 프로그램이 시작될 때 초기화되도록 배고픔 불러오기를 설정할 수 있다.
    ribbon:
      eager-load:
        enabled: true
        #  , 
        clients: shop-provider-user

    좋은 웹페이지 즐겨찾기