프로젝트 에서 Spring Cloud Alibaba Sentinel 구성 요 소 를 사용 하 는 방법 에 대해 말씀 드 리 겠 습 니 다.

Sentinel 이 뭐 예요?
마이크로 서비스 가 유행 하면 서 서비스 와 서비스 간 의 안정성 이 점점 중요 해 졌 다.Sentinel 은 유량 을 착안점 으로 하고 유량 제어,퓨즈 강등,시스템 부하 보호 등 여러 차원 에서 서비스의 안정성 을 보호 한다.
홈 페이지:https://github.com/alibaba/Sentinel
중국어 홈 페이지:https://github.com/alibaba/Sentinel/wiki
Sentinel 과 Hystrix 의 차이 점
Hystrix 가 더 이상 적극적으로 개발 하지 않 고 유지 보수 단계 에 들 어가 기 때문에 현재 점점 더 많은 개발 자 들 이 프로젝트 에서 Spring Cloud Alibaba Sentinel 구성 요 소 를 사용 하고 있 습 니 다.
Hystrix 의 관심 사 는 격 리 와 용 단 을 위주 로 하 는 용 착 메커니즘 입 니 다.시간 이 초과 되 거나 용 단 된 호출 은 빠르게 실패 하고 fallback 체 제 를 제공 할 수 있 습 니 다.
Sentinel 의 중점 은 다양한 데이터 제어,퓨즈 강등,시스템 부하 보호,실시 간 모니터링 과 컨트롤 러 에 있다.
대비 상세도

 Sentinel 의 기능 특징-공식 에서 발췌

 Sentinel 은 두 부분 으로 나 뉜 다.
핵심 라 이브 러 리(Java 클 라 이언 트)-자신의 프로젝트 의 코드.어떠한 프레임 워 크/라 이브 러 리 에 도 의존 하지 않 고 자바 7 이상 버 전의 운영 환경 에서 실행 할 수 있 으 며 Dubbo/Spring Cloud 등 프레임 워 크 에 도 좋 은 지원 을 받 습 니 다.
콘 솔(Dashboard)인 콘 솔 은 주로 푸 시 규칙,모니터링,클 러 스 터 흐름 제한 배분 관리,기계 발견 등 을 관리한다.
1.콘 솔(Dashboard)
1.sentienl 의 jar 가방 을 다운로드 합 니 다.이 예 는 sentinel-dashboard-1.7.2.jar,주소:https://github.com/alibaba/Sentinel/releases
2.자바-jar 명령 으로 Sentinel 콘 솔 시작
Sentinel 콘 솔 을 시작 하려 면 JDK 버 전이 1.8 이상 이 어야 합 니 다.

3.방문 주소:http://localhost:8080/,8080 Sentinel 의 기본 포트   기본 계 정 비밀 번 호 는 sentinel 입 니 다. 

 2.클 라 이언 트 구축
1.자신의 프로젝트 에 의존 도입

<!---sentinel   -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
    <version>2.2.1.RELEASE</version>
</dependency>
2.항목 의 편집 application.yml 또는 boottstrap.yml 파일
Sentinel 콘 솔 설정 정보 추가

spring:
   sentinel:
      transport:
        port: 8719  #    Sentinel        ,              HttpServer #   8719  ,       ,  +1,          
        dashboard: localhost:8080 #sentinel        ,      dashboard jar
3.자원 은 Sentinel 의 관건 적 인 개념 이다.그것 은 서비스,방법,심지어 코드 세 션 등 모든 것 일 수 있다.
Sentinel API 에 패키지 되면 자원 으로 정의 되 며 Sentinel 이 제공 하 는 보 호 를 신청 할 수 있 습 니 다.
데이터 제어 가 필요 한 코드 를 Sentinel 의 핵심 코드 인 SphU.entry(자원 이름)와 entry.exit()로 둘러싸 면 됩 니 다.
실례 코드--공식 에서 발췌

    Entry entry = null;
    try {
        //     sentinel     ,   test-sentinel-api
        entry = SphU.entry(resourceName);
        //               
        Thread.sleep(100);
        return a;
    } catch (BlockException e) {
        //                 ,    BlockException
        log.warn("         ", e);
        return "         ";
    } catch (InterruptedException e) {
        return "  InterruptedException";
    } finally {
        if (entry != null) {
            entry.exit();
        }
 
        ContextUtil.exit();
    }
}
주석 사용@SentinelResource 자원 을 정의 하고 선택 할 수 있 는 이상 처리 와 fallback 설정 항목 을 제공 합 니 다.
  • value:자원 이름,필수 항목(비어 있 으 면 안 됨)
  • entry Type:entry 형식,옵션(기본 값 은 EntryType.OUT)
  • blockHandler/blockHandler Class:blockHandler 가 BlockException 을 처리 하 는 함수 이름,옵션
  • fallback:fallback 함수 이름,옵션 을 선택 할 수 있 습 니 다.이상 을 던 질 때 fallback 처리 논 리 를 제공 합 니 다.
  • 프로젝트 에 Controller 에@Sentinel Resource(value="Sentinel-name")를 추가 합 니 다.
    예 를 들 면:

     시작 항목
    3.인터페이스의 유량 에 대한 상세 한 정 보 를 조회 합 니 다.
    1.실시 간 모니터링

    2.클 러 스 터 링크

    3.등등:기타 사용 방법 발굴 필요 
    보충:
    1.QPS:초당 요청 수,현재 이 api 를 호출 한 QPS 가 한도 값 에 도 달 했 을 때 스 트림 제한
    2.스 레 드 수:이 api 의 스 레 드 수가 한도 값 에 도 달 했 을 때 스 레 드 를 제한 합 니 다.
    3.직접:api 가 제한 조건 에 이 르 렀 을 때 직접 제한 4
    4.관련:관련 자원 이 한도 값 에 도달 하면 자신 을 제한 합 니 다.
    5.링크:지 정 된 도로 의 트 래 픽 만 기록 하고 자원 이 입구 자원 에서 들 어 오 는 트 래 픽 을 지정 합 니 다.한도 값 에 도달 하면 흐름 제한,api 등급 의 흐름 제한 을 합 니 다.
    6.핫 이 슈 규칙 은 자주 방문 하 는 데이터 입 니 다.많은 경우 에 우 리 는 특정한 핫 이 슈 데이터 중에서 방문 빈도 가 가장 높 은 Top K 데 이 터 를 통계 하고 그 방문 을 제한 하 기 를 원한 다.
    7.응답 시간 은 시스템 이 요청 에 응답 하 는 시간 을 말한다.
    8.스루풋 은 시스템 이 단위 시간 내 에 요청 한 수량 을 처리 하 는 것 을 말한다.
    프로젝트 에서 Spring Cloud Alibaba Sentinel 구성 요 소 를 어떻게 사용 하 는 지 에 대한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Spring Cloud Alibaba Sentinel 구성 요소 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 을 바 랍 니 다!

    좋은 웹페이지 즐겨찾기