데이터베이스는 마이크로서비스 아키텍처의 가장 중요한 구성 요소 중 하나이지만, 개발자가 서비스를 구출할 때 서비스 패턴별 데이터베이스를 간과하는 경우가 있다. 데이터베이스 구성은 애플리케이션의 효율성과 복잡성에 영향을 미칩니다. 개발자가 애플리케이션의 조직 아키텍처를 결정할 때 사용할 수 있는 가장 일반적인 옵션은 다음과 같습니다.
Dedicated database for each service(각 서비스에 대한 전용 DB):

한 서비스 전용 DB는 다른 서비스에서 엑세스 할 수 없습니다. 이는 전체 end-to-end 비즈니스측면에서 확장하고 이해하기가 훨씬 쉬워지는 이유 중 하나입니다.
DB의 요구사항이나 액세스 요구사항이 서로 다른 시나리오를 생각해보세요. 한 서비스가 소유한 데이터는 대부분 관계형일 수 있지만, 두번째 서비스는 NoSQL 솔루션이 더 나은 서비스를 제공할 수 있고, 세번째 서비스에는 백터 DB가 필요할 수 있습니다. 이 시나이로에서는 각 DB에 전용 서비스를 사용하면 DB를 더 쉽게 관리하는 데 도움이 될 수 있습니다.
또한 이 구조는 하나의 서비스가 다른 서비스의 테이블에 연결될 수 없기 때문에 결합도를 줄여줍니다. 서비스는 게시된 인터페이스를 통해 통신해야합니다. 단점은 전용 DB에는 통신이 실패하는 이벤트에 대한 실패 보호 메커니즘이 필요하다는 것입니다.
Originally published at https://www.capitalone.com.
DISCLOSURE STATEMENT: © 2023 Capital One. Opinions are those of the individual author. Unless noted otherwise in this post, Capital One is not affiliated with, nor endorsed by, any of the companies mentioned. All trademarks and other intellectual property used or displayed are property of their respective owners. Capital One is not responsible for the content or privacy policies of any linked third-party sites.