반응형
비동기 마이크로서비스
- 동기 마이크로서비스 란?
- 특정 마이크로서비스가 다른 마이크로서비스에 요청을 보내면, 요청이 처리돼 해당 요청에 대한 결과를 얻을 때까지 기다린다면 동기라함.
- 비동기 마이크로서비스 란?
- 특정 마이크로서비스는 A 요청을 처리하는 동안 다른 마이크로서비스에 요청하지 않거나 B 요청을 처리하는 동안 다른 마이크로서비스에 요청을 보내지만 결과를 기다리지 않으면 비동기라고 함.
- 경우의 수
- 1.특정 마이크로서비스는 요청을 처리하는 동안 다른 마이크로서비스와 전혀 통신 안함.
- 즉, 다른 시점에 다른 시스템과 통신함.
- 2.특정 마이크로서비스가 다른 마이크로서비스로 요청을 보냇지만, 응답을 기다리지 않음.
- 1.특정 마이크로서비스는 요청을 처리하는 동안 다른 마이크로서비스와 전혀 통신 안함.
통신 프로토콜
- 동기
- 동기통신의 경우 요청받는 서버는 각 요청에 응답해야 함.
- ex) REST, HTTP
- 요청은 상태 코드를 포함하고 추가 데이터를 포함할 수 있는 응답으로 연결됨.
- 단, 동기 프로토콜을 사용해 비동기 통신을 구현할 수 도 있음.
- 동기통신의 경우 요청받는 서버는 각 요청에 응답해야 함.
- 비동기
- 비동기 통신 프로토콜을 사용해 비동기 통신을 구현하는 것이 더 자연스러움.
- 비동기 통신 프로토콜은 메시지를 보내고 응답을 받지 않음.
- 메시징 시스템은 비동기 통신 접근 방법을 구현함.
- ex) 카프카
REST 와 메시징의 차이점
- 참고페이지 : https://www.slideshare.net/ewolff/rest-vs-messaging-for-microservices
- 두 기술 모두 요청 및 응답과 같은 동기 통신을 구현하기 위해 사용될 수 있음.
- 그러나, 중요한점은,
- 실행 후 무시(Fire-and-Forget)
- 이벤트와 같은 비동기 통신을 구현하는 데 사용될 수 있음.
결론
- 비동기 통신의 주요 장점
- 복원력과 낮은 결합도
- 위의 장점으로, 마이크로서비스간의 동기 통신보다 우선시해야 함.
- 비동기 통신은 마이크로서비스 아키텍처의 근본적인 문제를 우아하게 해결할 수 있는 잠재력을 가짐.
- 비동기 통신을 사용하지 않는 유일한 이유는 비일관성임.
- 기술적으로 올바른 결정을 내리기 위해서는 요구사항이 무엇인지 정확히 알아야함.
- 동기와 비동기를 결정해야하기 때문에..
참고) Fire-and-Forget 이란?
- 표적을 향해 미사일을 발사(Fire)하면 발사자는 미사일이 자동으로 목적을 향해 명중되는 것을 알고 있기에 망각(Forget)해도 된다는 뜻,
- 즉, 이벤트를 한 번 전달하면 이후 과정을 신경쓰지 않아도 잘 전달됨을 의미함.
728x90
300x250
'좋아하는 것_매직IT > 10.microservice' 카테고리의 다른 글
11.마이크로서비스, 카프카에 대해서 알아보자. (0) | 2021.01.12 |
---|---|
10.마이크로서비스, 메시지 지향 미들웨어(MOM)란? (0) | 2021.01.12 |
8.마이크로서비스, ESI란 무엇일까? (0) | 2021.01.12 |
7.마이크로서비스, 자원지향클라이언트 아키텍처란 무엇일까? (0) | 2021.01.12 |
6.마이크로서비스, 독립시스템(SCS, self-contained system) 은 무엇일까? (0) | 2021.01.12 |