每个服务的数据库
问题说明
微服务架构将应用程序构建为一组松散耦合的微服务,每个服务都可以以敏捷的方式独立开发,以实现持续交付/部署。 基于微服务的应用程序中的数据库结构/架构应该是什么。
解决方案
我们可以将每个微服务数据保留为该微服务的私有状态,并且这些数据只能通过相关的微服务访问。 微服务将使用自己的数据库进行事务。 下图显示了每个服务的数据库设计模式实现。
![每服务数据库微服务设计模式](/microservices_design_patterns/images/database_per_service_pattern.jpg)
每个服务的数据库并不总是需要配置单独的数据库。 考虑到关系数据库,我们可以使用以下方法来实现该模式。
每个服务的私有表 − 每个微服务都可以使用一组表,并且这些表只能通过其相关的微服务访问。
每个服务的架构 − 可以为每个微服务定义单独的架构。
每个服务的数据库服务器 − 可以为每个微服务配置整个数据库服务器。