-
MSA 의 장점과 단점project 2023. 7. 24. 08:53
MSA 로 분리하는지 또는 monolith 로 뭉치는지를 선택하기 위해 MSA 의 장단점을 이해해야 한다.
장점은 독립적인 개발, 디비 분리 등이 있다.
단점은 transaction 을 들 수 있다. RDBMS 하나로 dao 가 묶이던 시스템의 쿼리가 (데이터를 어디에 저장하냐에 따라 다를 수 있다) 분산되어 RDBMS 가 지원하는 transaction 을 쓸 수 없게 된다. 해결 방법으로는 분산 트랜잭션이 있는데, 이는 복잡도가 높아 유지보수성이 낮아진다.
두 개의 microservice 를 하나의 transaction 으로 묶어야 한다면 우선 뭉치는 것을 고민해야 한다. 이 자체가 쪼개야 할지를 판단하는 하나의 지표로, 이러한 유스케이스가 많다면 쪼개지 않는 것이 좋다.
이와 별개로 최종적 일관성은 분산 트랜잭션 없이 지원할 수 있으며 많은 유스케이스가 이 조건으로 해결이 가능하다.
또한 최근에는 modular monolith 라는 아키텍처가 유행해서 monolith 의 단점(서비스별 scale out 등)을 일부 상쇄해 준다.
'project' 카테고리의 다른 글
내부 인증 시스템 개발하기 (0) 2023.02.20 logstash oom 이슈 (0) 2023.02.19 Elasticsearch client 쓸때 주의점 (0) 2022.12.01 Maven 에 대해 (0) 2022.09.21 Git 과 Git-gui 정리 글 (0) 2022.09.18