1) MSA(마이크로소프트 서비스 아키텍처) 패턴의 한계
- MSA패턴은 시스템을 여러 서비스 컴포넌트로 나누고 각 컴포넌트끼리 서로 호출을 하는 패턴이다.
- 아래의 그림 1이 MSA패턴의 모습이다.
- 이 패턴의 한계는 서버가 서로 종속적이라는 점이다.
- 즉, server A가 server B을 호출을 했을 때 server B가 응답을 못하거나 응답 시간이 길어진다면 server A는 응답을 계속 기다리게 되는 한계가 있다.
- 이러한 한계를 극복한 것이 Circuit breaker 패턴이다.
2) Circuit breaker 패턴이란
- Circuit breaker 패턴은 그림 1에서 server A와 server B사이에 circuit breaker를 두는 것이다.
- 아래의 그림2가 Circuit breaker 패턴의 모습이다.
- server A가 server B을 호출할 때 circuit breaker가 모든 트래픽을 bypass 한다.
- 이때 server B에 응답이 없다면 circuit breaker가 server B로의 호출을 강제로 끊고 server A에게 에러 메시지를 날린다.
- 이를 더 발전시켜 server A에게 에러 메시지를 보내는 것이 아니라 다른 의미 있는 메시지를 보내줄 수 있다. (Fall-back 메시징)
3) Circuit breaker 패턴 사용법
- 넷플릭스의 자바 라이브러리 - Hystrix (소프트웨어)
- 장점 : 추가 서버 관리 비용이 들지 않는다.
- 단점 : 코드 수정 필요, 자바 언어에 종속적
- envoy.io 프록시 서버 (하드웨어)
- 장점 : 코드 수정 필요 x, 언어에 종속적 x
- 단점 : 프록시 서버를 하나 더 운영해야 하는 부담
관련 글
Circuit Breaker 패턴 - 2) 넷플릭스의 Hystrix 라이브러리 사용하기
Circuit Breaker 패턴 - 3) spring을 이용한 Circuit breaker
'디자인 패턴 > Circuit breaker 패턴' 카테고리의 다른 글
Circuit breaker 패턴 - 3) spring을 이용한 Circuit breaker (0) | 2020.05.01 |
---|---|
Circuit Breaker 패턴 - 2) 넷플릭스의 Hystrix 라이브러리 사용하기 (0) | 2020.04.16 |