145
4
장
마이크로서비스 통신 방식
4.4.14.4.1
장점 장점
동기식 블로킹 호출에는 간단하고 친숙한 무언가가 있다. 우리 대부분은 기본적으로 동기 방식
의 프로그래밍 (예: 스크립트와 같은 코드 조각을 읽어와 차례로 각 라인이 실행되고 다음 코드
라인이 작업을 위해 차례를 기다리는 것)을 배웠다. 프로세스 간 호출을 사용했던 대부분의 상
황에서는 동기식 블로킹 방식(예: 데이터베이스에서
SQL
쿼리를 실행하거나 다운스트림
API
에 대한
HTTP
요청을 만드는 것 )으로 수행했을 것이다.
단일 프로세스의 모놀리스와 같이 덜 분산된 아키텍처에서 전환할 때 새로운 일이 벌어진다면
익숙한 아이디어를 고수하는 것이 합리적이다.
4.4.24.4.2
단점 단점
동기식 호출의 주요 문제점은 고유한 시간적 결합에 있다.
2
장에서 이 주제를 간략히 살펴봤는
데, 그 예에서는 주문 처리기가 멤버십 (
Loyalty
)을 호출할 때 호출이 작동하려면 멤버십 마
이크로서비스에 연결할 수 있어야 한다. 만약 멤버십 마이크로서비스가 가용하지 않으면 호출
은 실패하고 주문 처리기는 수행할 보상 작업의 종류를 결정해야 한다. 보상 작업에는 즉각적
인 재시도, 나중에 재시도하기 위한 호출 버퍼링 또는 아예 포기하는 것이 포함될 수 있다.
이 결합은 양방향이다. 이러한 통합 방식을 사용하면 일반적으로 응답은 동일한 인바운드 네트
워크 연결을 통해 업스트림 마이크로서비스에 전송된다. 따라서 멤버십 마이크로서비스는 다
시 주문 처리기에 응답을 보내려고 하지만, 업스트림 인스턴스가 ...