일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- docker
- 마이크로서비스 패턴
- Catalina
- 분산추적
- linux
- AWS
- chat API
- 메시지
- 도커
- 가상머신 차이
- 리눅스
- GIT
- 자바 정규식
- GitLab
- error
- sh
- 제어루프
- 네이버클라우드플랫폼
- crontab
- eclipse
- 네이버웍스
- application 재기동
- 정규표현식
- MAC
- 모니터링 및 경고 중앙화
- Chat gpt
- MSA
- desktop
- ChatGPT
- 알림
Archives
- Today
- Total
시간나는대로 틈틈히 정리 합시다~~!!!
[마이크로서비스 디자인 패턴] 서킷 브레이커 (Circuit breaker) 본문
반응형
1. 문제점
- 동기 방식으로 상호 통신하는 마이크로서비스 시스템 환경은 연쇄 장애가 발생할 여지가 있다.
- 하나의 마이크로서비스가 응답하지 않으면 이 마이크로서비스의 클라이언트 또한 또 다른 클라이언트의 요청에
응답하지 않게 된다.
- 이 문제는 시스템 환경 전체에 재귀적으로 전파되어 중요한 부분까지 중단시킬 수 있다.
2. 참고사항
- 이런 문제는 블로킹 I/O를 사용해 동기식 요청을 실행하는 경우에 자주 발생한다.
- 다수의 동시 요청이 발생한 상황에서 서비스의 응답이 예기치 않게 지연되면 스레드 풀이 빠르게 소진돼 호출이
지연되거나 중단된다.
- 이런 장애는 클라이언트의 클라이언트에게 연쇄적으로 전파된다.
3. 해결책
대상 서비스에 문제가 있다는 것을 감지해 새 요청을 보내지 않도록 차단하는 서킷 브레이크를 추가한다.
- 서비스에 문제가 감지되면 시간초과(timeout)를 무시하고 바로 실패하도록 서킷을 연다.
- 반열림 서킷(half-open circuit)이라고도 하는 장애 복구용 프로브(probe)를 사용한다.
즉 서비스가 정상 동작하는지 확인하고자 주기적으로 요청을 보낸다.
- 프로브가 서비스의 정상 동작을 감지하면 서킷을 닫는다.
이런 기능은 시스템 환경을 탄력적으로 만들어서 자가 치유를 가능하게 하는 매우 중요한 기능이다.
4. 구현된 오픈소스 도구
- 스프링클라우드 : Resilience4j
- 이스티오 : 이상감지(Outlier detection)
반응형
'IT' 카테고리의 다른 글
[마이크로서비스 디자인 패턴] 모니터링 및 경고 중앙화 (centralized monitoring and alarm) (0) | 2021.03.30 |
---|---|
[마이크로서비스 디자인 패턴] 제어 루프 (control loop) (0) | 2021.03.30 |
[마이크로서비스 디자인 패턴] 분산 추적 (distributed tracing) (0) | 2021.03.30 |
[마이크로서비스 디자인 패턴] 로그 분석 중앙화 (centralized log analysis) (0) | 2021.03.29 |
[GIT] 터미널에서의 명령어 (0) | 2021.03.29 |
Comments