MSA + React | MSA란?


Microservice Architecture(MSA)란?

  • Monolithic 서버 : 응용 프로그램을 구현하는 데 필요한 모든 코드가 하나의 코드 베이스 안에.
    • 일체형 서버
  • Microservice 서버 : 한가지 기능만 구현하는 데 필요한 모든 코드를 갖춤.
    • 미들웨어, 라우터, 고유한 데이터베이스를 기능별로 가짐.
    • 독립 실행으로 다른 기능이 없어져도, 작동.
      1. 데이터 저장 방법 : 별도의 데이터베이스를 가진다.
      1. 데이터 접근법 : A서비스는 B서비스 DB에 접근할 수 없다.

MSA 단점 및 해결방법

  • 새로운 기능을 추가했을 때, 타 기능의 데이터에 접근해야하는데 타 데이터베이스에 접근할 수 없기 때문에, 서비스 간의 데이터 관리가 어렵다.
  • 해결방법
    • 동기: 새로운 서비스가 이미 존재하는 기능(DB가 아닌 Service에)들을 순차적으로 접근한다. (단점: 오래걸린다)
    • 비동기(잘 안씀): 각각의 서비스가 Event Bus를 공유한다. 새로운 기능이 이벤트 버스에 이벤트를 보내고 이벤트를 타 서비스들에게 전달하며 정보를 얻고 받아들인다.
    • 비동기: 타 기능을 사용할 때, 이벤트를 이벤트 버스에 보낸다. 그리고 그 이벤트를 새 기능에 넣으면서, 새 기능의 DB에 타 기능이 이용될 때에 새 기능 DB에 정보가 저장되게 한다.

MSA 장단점

[ 장점 ]

  • 종속성 제로 (간접적 종속성 - 비동기 DB)
  • 아주 빠름

[ 단점 ]

  • 데이터가 중복됨
  • 이해가 어려움.