마이크로서비스 아키텍처 - 개념정리 (3)

아카이브 · 2021. 5. 29. 22:30

마이크로서비스 엔드포인트 간의 통신

 

마이크로서비스의 통신방법

 

마이크로서비스 아키텍처를 기반으로 하는 시스템의 경우, 단일 마이크로서비스는 다른 카테고리에 존재하는 데이터를 생성할 수 없다.

서로 다른 마이크로서비스는 각각 자기 영역으로 분류된 데이터를 생성하면서, 서로 다른 마이크로서비스간의 커뮤니케이션을 수행한다.

 

마이크로서비스는 완전히 다른 컨텍스트에서 실행되는 다른 프로세스이거나 다른 하드웨어에 존재 할 수 있다. 따라서 다양한 형태의 마이크로서비스 통신이 나타날 수 있다.

 

마이크로서비스 간의 제어 및 통신 흐름을 다음과 같이 분류할 수 있다.

 

  • 오케스트레이션
  • 커리어그래픽

오케스트레이션

 

오케스트레이션은 중심점을 기반으로 의사소통이 진행된다. 중재자 서비스가 상황에 맞게 각 마이크로 서비스에 작업을 요청하고 모든 마이크로서비스는 단일 비즈니스를 목적으로만 작동한다.

 

커리어그래피

 

오케스트레이션과는 다르게 커리어그래피에서 각 구성 요소는 다른 구성요소와 함께 미리 정의된 작업을 수행하도록 조정된다. 오케스트레이션은 항상 한 관점에서 전체를 제어하기 때문에, 공동 작업을 통해 각 마이크로서비스끼리 서로 상호작용을 할 수 있게 하는 커리어그래피와 다르다. 커리어그래피에서 서비스는 작업을 마친 후 새로운 작업을 시작하기 위해서 다른 서비스와 통신을 하는데 1:1, 1:N, N:M 등의 다양한 형태로 발생할 수 있다. 

 

동기식 통신과 비동기식 통신

 

오케스트레이션, 커리어그래피는 마이크로서비스 간의 통신을 트리거하는 방법이었다. 이 두가지 방법 모두 동기식, 비동기식 통신방법을 사용할 수 있다. 위의 이 두가지 통신방법에 대해 알아보겠다.

 

동기식 통신

동기식 통신은 두 서비스 간에 통신이 이루어 질때, 사용자측 서버는 리모트 서버의 응답이 수신될때까지 기다리거나, 기다리는것을 멈춘다. 동기식 통신에서 수신자는 통신이 성공했는지 실패했는지 즉시 알 수 있으며 결과를 바탕으로 필요한 결정을 내린다.

 

비동기식 통신

메세지 기반/ 이벤트 기반 비동기 통신