왜 필요한가?
모놀리식 애플리케이션 - 단순하게 다른 메서드나 함수를 호출하면 됨.
마이크로서비스 애플리케이션 - 서비스 단위로 나뉘어진 분산 시스템이기 때문에 서비스 간 통신이 필요.
마이크로서비스 간의 통신을 프로세스 간 통신(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 |
- Request/Response : 요청을 보내고 응답이 올 때까지 기다린다.
- Notification : 요청을 보내기만 한다. (모바일 푸시 알림)
- Request/Async response : 요청을 보내면 비동기로 응답이 온다.
- Publish/Subscribe : 등록된 서비스들에 요청을 보낸다. 요청을 받은 서비스들은 각자 로직을 처리.
- Publish/Async response: 비동기 형태로 응답을 보낸다.
예시
참고
https://www.nginx.com/blog/building-microservices-inter-process-communication/