마이크로서비스 당 데이터베이스 원칙 

  • 장점
    • 마이크로서비스 당 데이터베이스를 각각 가지게 되면 각 팀은 자체 데이터를 완전히 소유하게 되며, 다른 마이크로서비스 데이터에 노출되지 않는다.
    • 이로 인해 스키마 변경과 같은 이벤트가 생길 시에 한 마이크로서비스에서만 변경해주면 된다.
  • 단점
    • 다른 마이크로서비스에 요청을 보내므로 추가 지연시간이 발생한다.
      • 만약 이로 인한 성능 문제가 심각할 시엔 다른 마이크로서비스에 속한 데이터를 캐시하거나 저장하는 방식을 사용하면 된다.
      • 이때 데이터를 항상 최신 상태로 만들어줘야 한다.
      • 또한 데이터의 소유자는 해당 마이크로서비스이므로 이 데이터를 수정하면 안 된다.
    • join 기능을 상실하게 된다.
    • 트랜잭션을 보장할 수 없게 된다.
      • 예를 들어 하나의 작업이 두 개의 마이크로서비스 데이터베이스에서 동작하는 작업일 때 한 쪽에선 커밋이 되고 한 쪽은 오류가 발생할 때 모든 작업이 롤백되지 않을 수 있다.
      • 반드시 필요하고 성능 상 이점이 있을 때 하나의 서비스로 만들어 준다.

+ Recent posts