488
2
부
구현
오류로 간주해 재시도하는 것이 적절하다.
재시도하기 전에 지연 시간이 필요할 수 있다. 다운스트림 마이크로서비스에 부하가 걸려 초기
타임아웃이나 에러가 발생한 경우 추가 요청을 쏟아내는 것은 좋지 않은 생각일 수 있다.
재시도하려면, 타임아웃 임계값을 고려할 때 이를 염두에 둬야 한다. 다운스트림 호출에 대한
타임아웃 임계값이
500ms
로 설정돼 있지만, 각각의 재시도 사이에
1
초 간격으로 최대 세 번
의 재시도를 허용하는 경우 포기하기 전에 최대
3
.
5
초 동안 기다려야 할 수 있다. 앞서 언급했
듯이 전체 타임아웃 예산을 이미 초과했다면 세 번째 (또는 두 번째 ) 재시도를 수행하지 않을
수 있으므로 작업 소요 시간에 대한 예산을 설정하는 것은 유용할 수 있다. 반면에 이것이 사용
자와 대면하지 않는 작업의 일부분에서 발생했다면, 작업 완료를 위해 더 오래 기다려도 괜찮
을 것이다.
12.5.312.5.3
벌크헤드 벌크헤드
『
Release
It
릴리스 잇: 성공적인 출시를 위한 소프트웨어 설계와 배치』 (위키북스,
2007
)에서
마이클 나이가드
Michael
Nygard
는 실패로부터 격리하는 방법으로
벌크헤드벌크헤드
bulkhead
(격벽 )라는 개념
을 소개한다. 선박에서 격벽은 선체의 다른 부분을 보호하기 위해 밀봉할 수 있는 선체의 일부
분이다. 따라서 배에 물이 들어올 경우 격벽 문을 닫을 수 있다. 그럼 배의 일부 공간은 잃겠지
만 나머지 공간은 무사하게 된다.
소프트웨어 아키텍처 관점에서는 매우 다양한 벌크헤드가 있다. ...