Bulkhead Pattern
- Bulkhead == 격벽
- 배의 격벽(bulkhead)처럼 시스템을 여러 구역으로 나눠서, 한 구역이 터져도 전체 시스템이 붕괴하지 않도록 ‘격리’하는 패턴
- 전체 시스템을 보호하는 목적!
- 연동 서비스에 임계치 이상의 요청을 보내면서 발생하는 성능 저하 문제를 완화하는 방법은,
- 연동 서비스에 요청을 일정 수준 이상으로 보내지 않는 것
- 미리 요청을 컷 하는 방식으로도 할 수 있고
- 동시 요청 제한에 걸린 요청은 바로 503(service unavailable) 응답
- 요청 300개중 100개는 연동시키고 나머지 200개는 에러 응답 바로 던지는 식
- 외부 API에 의존하는 경우 빠른 응답을 실패든 성공이 든 받아서 다른 서비스의 병목을 방지하는 것!!!
- 느리거나 장애가 난 외부 API로 인해 전체 시스템이 영향을 받지 않도록 전용 리소스 풀에서 격리하고, 풀 초과 시 빠르게 실패시키는 패턴.
- 참고