
156
1
부
기초
4.7.14.7.1
구현: 동기 대 비동기 구현: 동기 대 비동기
이와 같은 요청 및 응답 호출은 동기식 블로킹 방식이나 비동기식 논블로킹 방식으로 구현할
수 있다. 동기식 호출을 사용하면 일반적으로 다운스트림 마이크로서비스와 네트워크 커넥션
이 생성되며 이 커넥션을 따라 전송된다. 업스트림 마이크로서비스가 응답할 때까지 대기하는
동안 커넥션은 열린 상태로 유지된다. 이 경우 응답하는 마이크로서비스는 요청하는 마이크로
서비스에 대해 전혀 알 필요가 없다. 단지 인바운드 커넥션을 통해 다시 돌려보내는 것뿐이다.
따라서 업스트림 또는 다운스트림 마이크로서비스 인스턴스가 종료돼 해당 커넥션이 끊어지면
문제가 발생할 수 있다.
비동기식 요청 및 응답 방식을 사용하면 덜 간단하다. 재고 예약과 관련된 프로세스를 다
시 살펴보자. [그림
4
-
10
]에서 재고 예약 요청은 일종의 메시지 브로커를 통해 메시지로 전
송된다 (이 장의 뒷부분에서 메시지 브로커를 설명한다 ). 메시지가 주문 처리기에서 창고
(
Warehouse
) 마이크로서비스로 바로 이동하는 대신 큐에 보관된다. 창고 서비스는 가용한 상
황에서 이 큐의 메시지를 사용한다. 요청을 읽고 관련 재고 예약 작업을 수행한 다음, 주문 처
리기가 읽고 있는 큐로 응답을 다시 보낸다. 또한 응답을 어디로