기술나눔

Spring Cloud Alibaba - 센티널 분산 시스템 트래픽 센티널

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

여기에 이미지 설명을 삽입하세요.

개요

마이크로서비스가 대중화되면서 서비스와 서비스 간의 안정성이 점점 더 중요해지고 있습니다. Sentinel은 분산형 다국어 이기종 서비스 아키텍처를 위한 트래픽 관리 구성 요소로, 주로 트래픽을 진입점으로 사용하여 트래픽 라우팅, 트래픽 제어, 트래픽 셰이핑, 회로 차단기 성능 저하, 시스템 적응형 과부하 보호, 핫스팟 트래픽 보호 등을 담당합니다. . 개발자가 마이크로서비스의 안정성을 보장할 수 있도록 지원하는 Dimension입니다.

간단히 말해서 Sentinel은 Spring Cloud Circurk Breaker와 동일한 트래픽 관리 구성 요소입니다.

특징

  • 풍부한 애플리케이션 시나리오: Sentinel은 지난 10년간 Alibaba의 Double Eleven 트래픽 프로모션의 핵심 시나리오를 담당했습니다. 예를 들어 플래시 세일(즉, 버스트 트래픽은 시스템 용량이 감당할 수 있는 범위 내에서 제어됨), 메시지 피크 절감 등이 있습니다. 밸리 필링, 클러스터 트래픽 제어, 다운스트림에서 사용할 수 없는 애플리케이션의 실시간 융합 등.
  • 완벽한 실시간 모니터링: Sentinel은 실시간 모니터링 기능도 제공합니다. 애플리케이션에 연결된 단일 머신의 2차 데이터를 콘솔에서 볼 수 있으며, 500대 미만 머신으로 구성된 클러스터의 요약 작업 상태까지 볼 수 있습니다.
  • 광범위한 오픈 소스 에코시스템: Sentinel은 Spring Cloud, Apache Dubbo, gRPC 및 Quarkus와의 통합 등 다른 오픈 소스 프레임워크/라이브러리와 즉시 사용 가능한 통합 모듈을 제공합니다. Sentinel에 빠르게 연결하려면 해당 종속성을 도입하고 간단한 구성만 수행하면 됩니다. 동시에 Sentinel은 Java/Go/C와 같은 여러 언어로 기본 구현을 제공합니다.
  • 완전한 SPI 확장 메커니즘: Sentinel은 사용하기 쉽고 완전한 SPI 확장 인터페이스를 제공합니다. 확장 인터페이스를 구현하여 로직을 신속하게 사용자 정의할 수 있습니다. 예를 들어 맞춤형 규칙 관리, 동적 데이터 소스 조정 등이 있습니다.

Sentinel의 주요 기능:
여기에 이미지 설명을 삽입하세요.

기본 사상

자원

리소스는 Sentinel의 핵심 개념입니다. 이는 애플리케이션에서 제공하는 서비스, 애플리케이션에서 호출하는 다른 애플리케이션 또는 코드 조각과 같은 Java 애플리케이션 내의 모든 것일 수 있습니다. 다음 문서에서는 리소스를 사용하여 코드 블록을 설명합니다.

Sentinel API를 통해 정의된 코드는 리소스라면 Sentinel로 보호될 수 있습니다. 대부분의 경우 메소드 서명, URL 또는 서비스 이름을 리소스 이름으로 사용하여 리소스를 식별할 수 있습니다.

규칙
리소스의 실시간 상태에 대해 설정된 규칙에는 흐름 제어 규칙, 회로 차단기 성능 저하 규칙 및 시스템 보호 규칙이 포함될 수 있습니다. 모든 규칙은 실시간으로 동적으로 조정될 수 있습니다. (규칙은 Sentinel 콘솔, yml 구성 및 Java 코드에서 설정할 수 있습니다.)

센티넬 설치

Sentinel의 사용은 두 부분으로 나눌 수 있습니다.

  • 핵심 라이브러리(Java 클라이언트): 프레임워크/라이브러리에 의존하지 않으며 다음에서 실행될 수 있습니다. 자바 8 이상런타임 환경 버전이며 Dubbo/Spring Cloud와 같은 프레임워크도 잘 지원합니다.
  • 대시보드: 대시보드는 주로 푸시 규칙 관리, 모니터링 및 컴퓨터 정보 관리를 담당합니다.

다운로드 경로:https://github.com/alibaba/Sentinel/releases

다운로드 후 jar 패키지를 찾아 명령을 실행하여 Sentinel 콘솔을 시작하세요.

java -jar sentinel-dashboard-xxx.jar

로컬 환경은 jdk8 버전 이상이어야 하며, 포트 8080이 점유되어 있지 않음(Sentinel 콘솔 포트)
Sentinel 1.6.0부터 Sentinel 콘솔에는 기본 로그인 기능이 도입되었습니다. 기본 사용자 이름과 비밀번호는 모두 sentinel입니다.
여기에 이미지 설명을 삽입하세요.

Sentinel을 마이크로서비스에 도입한 사례

새로운 마이크로서비스를 생성하고, Nacos 및 Sentinel을 도입하고, 서비스를 Nacos에 등록하고, 서비스에 대한 트래픽 모니터링, 회로 차단기 및 다운그레이드를 수행합니다.

종속성 소개