마이크로서비스 당 데이터베이스 원칙
- 장점
- 마이크로서비스 당 데이터베이스를 각각 가지게 되면 각 팀은 자체 데이터를 완전히 소유하게 되며, 다른 마이크로서비스 데이터에 노출되지 않는다.
- 이로 인해 스키마 변경과 같은 이벤트가 생길 시에 한 마이크로서비스에서만 변경해주면 된다.
- 단점
- 다른 마이크로서비스에 요청을 보내므로 추가 지연시간이 발생한다.
- 만약 이로 인한 성능 문제가 심각할 시엔 다른 마이크로서비스에 속한 데이터를 캐시하거나 저장하는 방식을 사용하면 된다.
- 이때 데이터를 항상 최신 상태로 만들어줘야 한다.
- 또한 데이터의 소유자는 해당 마이크로서비스이므로 이 데이터를 수정하면 안 된다.
- join 기능을 상실하게 된다.
- 트랜잭션을 보장할 수 없게 된다.
- 예를 들어 하나의 작업이 두 개의 마이크로서비스 데이터베이스에서 동작하는 작업일 때 한 쪽에선 커밋이 되고 한 쪽은 오류가 발생할 때 모든 작업이 롤백되지 않을 수 있다.
- 반드시 필요하고 성능 상 이점이 있을 때 하나의 서비스로 만들어 준다.
- 다른 마이크로서비스에 요청을 보내므로 추가 지연시간이 발생한다.
'Spring Boot > MSA' 카테고리의 다른 글
jpa 연관관계 설정 in msa (0) | 2024.09.29 |
---|---|
마이크로서비스로의 전환 (feat. 도메인 주도 설계) (0) | 2024.09.25 |
마이크로서비스 핵심 원칙 (0) | 2024.09.23 |
eureka client 설정 in docker-compose (0) | 2024.09.22 |
분산 추적 도구 - zipkin (0) | 2024.09.17 |