03.프로세스 간 통신
마이크로서비스 아키텍처 IPC 개요
서비스에 적용 가능한 IPC 기술은 선택의 폭이 넓다.
HTTP 기반 REST나 gRPC 등 동기 요청/응답 기반의 통신 메커니즘도 있고, AMQP, STOMP 등 비동기 메시지 기반의 통신 메커니즘도 있다.
메시지 포맷 역시 JSON, XML 처럼 인간이 읽을 수 있는 텍스트 포맷부터 Avro, Protocol Buffer처럼 효율이 웃우한 이진 포맷까지 다양하다.
상호작용 스타일
서비스와 클라이언트 간의 상호작용은 일대일(One-to-one) 또는 일대다(One-to-many) 방식으로 구분 또한, 상호작용은 동기(Synchronous) 또는 비동기(Asynchronous) 방식으로 나뉩니다.

일대일 상호 작용의 종류
요청/응답: 클라이언트는 서비스에 요청을 하고 응답을 대기
클라이언트는 응답이 제때 도착하리라 기대하고 대기 도중 블로킹
결과적으로 서비스가 서로 강하게 결합되는 상호 작용 스타일
비동기 요청/응답: 클라이언트는 서비스에 요청을 하고 서비스는 비동기적으로 응답
클라이언트는 대기 중 블로킹하지 않고, 서비스는 오랫동안 응답하지 않을 수 있음
단방향 알림: 클라이언트는 서비스에 일방적으로 요청만 하고 서비스는 응답을 보내지 않음
일대다 상호 작용의 종류
발행/구독: 클라이언트는 알림 메시지를 발행하고, 여기서 관심 있는 0개 이상의 서비스가 메시지를 소비
발행/비동기 응답: 클라이언트는 요청 메시지를 발행하고 주어진 시간 동안 관련 서비스가 응답하길 대기
Last updated