
141
4
장
마이크로서비스 통신 방식
또 어떤 문제는 쉽게 처리하지 못하므로 사람의 개입이 필요하다. 결과적으로, 클라이언트가
적절한 조치를 취할 수 있는 방식으로 에러를 반환하기 위한 더 풍부한 의미 체계
semantics
를 갖
추는 것이 중요해진다.
HTTP
는 그 중요성을 잘 이해하는 프로토콜의 한 예다. 모든
HTTP
응답에는 예약된 에러용
으로 (
400
번대 및
500
번대의 코드를 포함하는 ) 코드를 제공한다.
400
번대 에러 코드는 요청
에러며, 본질적으로 다운스트림 서비스는 원래부터 요청에 문제가 있다는 사실을 클라이언트
에 알려준다. 이러한 경우 아마도 요청을 포기해야 할 것이다. 예를 들어
404
Not
Found
를 재
시도할 이유가 있을까?
500
번대 응답 코드는 다운스트림 서버의 문제와 관련이 있으며, 일부
코드는 일시적인 문제라고 클라이언트에 알려준다. 예를 들어
503
Service
Unavailable
은
다운스트림 서버가 요청을 처리할 수 없지만 일시적인 상태일 수 있음을 나타내며, 이 경우 업
스트림 클라이언트가 요청을 재시도할 수 있다. 반면에 클라이언트가
501
Not
Implemented
응답을 받은 경우에는 재시도가 그다지 도움이 되지 않을 것이다.
마이크로서비스 간의 통신을 위해
HTTP
기반 프로토콜의 선택 여부와 관계없이 에러의 ...