왜 필요한가?

모놀리식 애플리케이션 - 단순하게 다른 메서드나 함수를 호출하면 됨.

마이크로서비스 애플리케이션 - 서비스 단위로 나뉘어진 분산 시스템이기 때문에 서비스 간 통신이 필요.

마이크로서비스 간의 통신을 프로세스 간 통신(inter-process communication)이라고 한다.


통신 방식

  • 상관 관계

    일대일(One-to-One) : 하나의 요청이 하나의 서비스 실행.
    일대다(One-to-Many) : 하나의 요청이 여러 서비스 실행.

  • 동기/비동기

    동기(Synchronous) : 요청을 보내고 응답이 올때까지 기다리는 방식.
    비동기(Asynchronous) : 요청을 보내고 응답이 올 때까지 기다리지 않고 다음 작업을 수행. <콜백 함수>

 

분류

 

One-to-One One-to-Many
Synchronous Request/response  — 
Asynchronous Notification Publish/subscribe
Request/async response Publish/async responses
 
  1. Request/Response : 요청을 보내고 응답이 올 때까지 기다린다.
  2. Notification : 요청을 보내기만 한다. (모바일 푸시 알림)
  3. Request/Async response : 요청을 보내면 비동기로 응답이 온다.
  4. Publish/Subscribe : 등록된 서비스들에 요청을 보낸다. 요청을 받은 서비스들은 각자 로직을 처리.
  5. Publish/Async response: 비동기 형태로 응답을 보낸다.

 

예시

A microservices-based taxi-hailing app can use a variety of communication methods: notification, request-response, publish-subscribe

참고

https://www.nginx.com/blog/building-microservices-inter-process-communication/