web/마이크로서비스

마이크로 서비스 통신방식 결정

반응형

마이크로서비스 사이의 통신은 요청-응답 형태로 진행되는 동기와 비동기 방식으로 설계할 있다.


동기와 동기는 서비스별로 어울리도록 정책을 가져야 한다.  예를 들어 예약서비스에서 기록이 되는 부분까지는 동기로 진행해서 사용자에게 보여주고 

기타 재고 갱신 서비스, 호텔 알림 서비스 등등 당장 순차적으로 실행돼야 하는 것이 아닌 서비스는 동기로 처리하도록 한다.

 

 

동기 방식

  • 이벤트를 보관하는 메시지 등이 없어 관리할 포인트가 적다.
  • 서로 응답을 주고 받는 형식이기 때문에 인프라 스트럭처상에서의 의존관계가 없어서 관리에 드는 비용이 적다.
  • 순차적으로 단계별로 진행되기 때문에 에러가 발생할 경우 데이터의 일관성을 유지할 있다.
  • 응답을 기다려야 하는 단점은 너무 동기로 묶여 있을 경우에는 마이크로서비스로 구분하는 장점이 사라지기 때문이다.

 

 

비동기 방식

  • 마이크로서비스 사이의 결합을 해소하여 리액티브한 이벤트 루프 방식에 바탕을 둔다.
  • 서비스가 독립적이고 작업을 하는 스레드를 만들어서 부하를 분산할 있어 고수준의 확장성이 가능하다.
  • 동기 방식과 달리 발생한 이벤트를 메시지 큐에 전송하고 이벤트를 별도로 처리하기 때문에 특정 영역에 문제가 발생 되어도 서비스에는 전체에 문제가 발생되지 않는다.
  • 메시지 큐를 사용하는 장점도 있으나 메시지 서버에 부하가 발생되면 모든 구간에 문제가 발생할 있기 때문에 관리가 필요하다.

 

 

 

 

 

 

 


반응형