微服务模式/体系结构中的数据库

时间:2015-07-30 07:27:01

标签: web-services rest design-patterns microservices

我正在尝试了解微服务模式的布局。鉴于每个微服务都将在其VM上运行(为了示例),数据库如何适应这种架构?

每个服务是否会连接到统一数据库以读取/写入数据?

感谢您的任何见解

2 个答案:

答案 0 :(得分:2)

没有一种尺寸适合所有解决方案。

一般原则是每个微服务应该根据正确的持久性架构应该做出正确的决定。它可能连接到中央SQL数据库,或者它可能使用文件系统,或者它可能使用NoSQL数据存储,或memcached,或其他任何东西。 (这就是人们用微服务谈论eventual consistency的原因。)

您希望以这种方式真正捕获微服务的好处。

  1. 您希望每个微服务都可以独立发送,这样您就不会被阻止。与集中式基础架构的更强耦合降低了微服务的独立性。
  2. 持久性要求变化很大。如果您正在运行搜索微服务,则不需要典型SQL数据库的ACID语义。如果您正在付款,则需要ACID。如果您要存储和处理图像,则可以使用文件系统。等

答案 1 :(得分:0)

根据我在处理mSOA时的经验,最终总是会遇到Data Warehouse解决方案。如果每个微服务都有一个专用的DB(集群),这是很自然的选择。毕竟业务应该能够使用您域中的信息。即使Data Vault Modeling也适合这里。