【问题标题】:How to deploy database-per-service pattern如何部署每服务数据库模式
【发布时间】:2020-10-15 20:51:45
【问题描述】:

我还在学习微服务模式,但据我了解,每个服务都应该独立部署(即 docker 容器)。 那么,它是如何维护其数据库的呢? 它如何以一种可能是无状态的方式连接到它?

【问题讨论】:

  • 你尝试了什么?

标签: database microservices


【解决方案1】:

每个服务的数据库(也称为每个微服务的数据库)模式是一个具有 3 个方面的设计解决方案:

  1. 微服务“拥有”的数据存储在专用数据存储中,而不是作为与属于其他微服务的数据元素关联(例如 FK)的共享数据存储的一部分。

  2. 微服务只能看到自己的专用数据存储。如果微服务需要来自其他地方的数据,它应该通过其他方式获取数据,更突出的是 API 调用或数据复制。顺便说一句,服务数据复制是一种单独的模式,可以与每个服务的数据库相结合。

  3. 其他微服务和其他应用看不到微服务的专用数据存储

Microservice is an architecture style,并且Database per Service 是一种微服务模式,可能会或可能不会用于给定的微服务;它不是强制性的。同样,容器化几乎总是一个好主意,但它不是微服务的要求。

【讨论】:

    【解决方案2】:

    每个微服务都必须在自己的 Docker 容器中。 每个微服务都有自己的数据库连接设置。 根据架构,可以在数据库服务器上为每个微服务创建数据库。 每个应用程序实例都使用自己的设置连接到自己的数据库。

    您可以了解更多关于每个服务模式的数据库here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多