[MSA + React] MSA란?
MSA + React | MSA란?
Microservice Architecture(MSA)란?
- Monolithic 서버 : 응용 프로그램을 구현하는 데 필요한 모든 코드가 하나의 코드 베이스 안에.
- 일체형 서버
- Microservice 서버 : 한가지 기능만 구현하는 데 필요한 모든 코드를 갖춤.
- 미들웨어, 라우터, 고유한 데이터베이스를 기능별로 가짐.
- 독립 실행으로 다른 기능이 없어져도, 작동.
-
- 데이터 저장 방법 : 별도의 데이터베이스를 가진다.
-
- 데이터 접근법 : A서비스는 B서비스 DB에 접근할 수 없다.
MSA 단점 및 해결방법
- 새로운 기능을 추가했을 때, 타 기능의 데이터에 접근해야하는데 타 데이터베이스에 접근할 수 없기 때문에, 서비스 간의 데이터 관리가 어렵다.
- 해결방법
- 동기: 새로운 서비스가 이미 존재하는 기능(DB가 아닌 Service에)들을 순차적으로 접근한다. (단점: 오래걸린다)
- 비동기(잘 안씀): 각각의 서비스가 Event Bus를 공유한다. 새로운 기능이 이벤트 버스에 이벤트를 보내고 이벤트를 타 서비스들에게 전달하며 정보를 얻고 받아들인다.
- 비동기: 타 기능을 사용할 때, 이벤트를 이벤트 버스에 보낸다. 그리고 그 이벤트를 새 기능에 넣으면서, 새 기능의 DB에 타 기능이 이용될 때에 새 기능 DB에 정보가 저장되게 한다.
MSA 장단점
[ 장점 ]
- 종속성 제로 (간접적 종속성 - 비동기 DB)
- 아주 빠름
[ 단점 ]
- 데이터가 중복됨
- 이해가 어려움.