提问者:小点点

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


我正在尝试了解微服务模式的布局。假设每个微服务都将在其 VM 上运行(例如),数据库如何适应此体系结构?

每个服务是否依次连接到统一数据库以读/写数据?

感谢您的任何见解


共2个答案

匿名用户

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

一般原则是,每个微服务都应该根据正确的持久性体系结构做出正确的决定。它可能连接到中央SQL数据库,或者它可能使用文件系统,或者它可能使用NoSQL数据存储,或者memcached,或者其他什么。(这就是为什么人们经常谈论微服务的最终一致性。

您希望以这种方式执行此操作,以真正获得微服务的优势。

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

匿名用户

根据我在处理 mSOA 时的经验,最终总是会涉及到数据仓库解决方案。如果每个微服务都有一个专用的数据库(集群),这是自然的选择。毕竟,企业应该能够使用您域中的该信息。甚至数据保险库建模也非常适合这里。