개발 자: Sentinel 흐름 제어 기능 이 SpringMVC / SpringBoot 에서 의 실천
흐름 통 제 는 분포 식 시스템 에서 비교적 기본 적 인 수요 로 시스템 부하, 서비스 분량, 분량 선별, 안전, 통제 등 이 필요 하 다.
흐름 제어 수단 은 일반적으로 데이터 게 이 트 웨 이와 업무 내 에 마 운 트 되 는 논리 이다.
데이터 게 이 트 웨 이 는 Nginx 와 같은 프 록 시 계층 에서 흔히 볼 수 있 습 니 다. 확장 플러그 인, Lua 스 크 립 트 를 통 해 IP / path / Query 등 형식의 흐름 을 제어 합 니 다.업무 내 에 주로 국부 또는 구조 층 에서 직진 신호 분량, 스 레 드 탱크, 시간 초과 또는 다른 논리 로 흐름 통 제 를 실현 한다.전 자 는 주로 운영 가능 한 조작 성에 나타 나 고 업무 라인 을 침범 하지 않 으 며 후 자 는 목적 성 이 63745 ° 강하 지만 침입 성 이 있 거나 수정 할 때 배치 해 야 하 며 전체 12207 ° 업무 팀 에 통제 할 수 있다.
두 가지 유형의 흐름 통 제 는 흔히 12112 ℃ 로 갈 라 지고 (서로 다른 팀 이 공유 하지 않 는 공간 에서 행동 통제) 지표의 불 균형 성 이 자주 나타난다.
이 문 제 를 해결 하기 위해 우 리 는 기 존의 수 요 를 모 으 고 관련 시스템 을 조사 연구 하기 시 작 했 습 니 다. 그리고 12032 세트 를 실현 하려 고 합 니 다. 업무 와 운영 을 동시에 대상 으로 하 는 응용 급 격 리 와 기본 규칙 유형의 수 요 를 만족 시 키 는 흐름 제어 실현 을 실현 하려 고 합 니 다. Nginx 에서 LuaJIT 를 이용 하여 더욱 강력 한 흐름 제어 모듈 을 실현 할 것 으로 예상 합 니 다.
조사 연 구 를 하 는 과정 에서 Sentinel 0.1 / 0.2 의 발표 가 있 었 습 니 다. * 12096 ° servlet 통합 (URL 제한) 을 가지 고 조작 * 12207 ° 판 (Dashboard) 을 가지 고 기본 적 인 실시 간 상황 조회, 실시 간 으로 배포 규칙 을 수정 하고 전체 부하 와 단일 지점 의 용 단 을 지원 하 며 QPS, 신호 분량 등 형식 으로 흐름 을 제어 할 수 있 습 니 다.제로 침입 을 제외 하고 대체적으로 우리 의 수 요 를 만족 시 키 기 때문에 Sentinel 진입 방안 을 바탕 으로 착지 시 도 를 하려 고 합 니 다.
Sentinel 통합 실천
우리 의 기본 수 요 는 다음 과 같다.
집적 방식 은 현재 항목 의 분량 이 12042 ℃ 이 고 입 부분 은 대부분이 SpringMVC 를 바탕 으로 하 는 프로젝트 이 며 적은 부분 은 SpringBoot 프로젝트 이 며 운영 배치 의 측면 에서 볼 때 전체 12140 ℃ 전에는 주로 일반 운송 방식 (JVM / tomcat) 과 수용 방식 이 있 습 니 다.
그래서 우 리 는 실제 수요 에 따라 Sentinel 초기 화 도 구 를 패키지 에 넣 었 습 니 다. SpringMVC 를 바탕 으로 XML 초기 화 방식 을 제 공 했 습 니 다. SpringBoot 를 바탕 으로 주해 초기 화 방식 을 제 공 했 습 니 다. 예 를 들 어:
@InitDefaults(
projectName = "demo",
sentinelPort = 19000,
sentinelGroup = "test"
)
집성 구조
집적 요점
주로 스토리 보드 를 sentinel - web - servlet 로 하여 금 이 방안 을 사용 하 게 한다.
Sentinel 에 대한 기대
본 고 는 운 서 지역사회 의 오리지널 내용 으로 허락 없 이 전재 할 수 없다.
다음으로 전송:https://juejin.im/post/5d034a21f265da1b8e709bdb
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.