web-services - 微服务模式/架构中的数据库

标签 web-services rest design-patterns microservices

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

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

感谢您的任何见解

最佳答案

没有一刀切的解决方案。

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

您希望通过这种方式真正获得微服务的好处。

  • 您希望每个微服务都可以独立发布,这样您就不会受到任何阻碍。与集中式基础设施的更强耦合会降低微服务的独立性。
  • 持久性要求变化很大。如果您正在运行搜索微服务,则不需要典型 SQL 数据库的 ACID 语义。如果您要付款,则需要 ACID。如果您正在存储和处理图像,您可能只使用文件系统。等
  • 关于web-services - 微服务模式/架构中的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31717615/

    相关文章:

    java - 带有限定符的类型 Set<Service> 的不满足依赖关系

    java - 读取大文件并连续处理时连接重置

    java - 实现接口(interface)并聚契约(Contract)一接口(interface)的多个实现的抽象类。有它的模式(名称)吗?

    Android 重构 - 最佳实践 - drawable shape and colors.xml

    PHP 将 MySql 查询与类分离

    c# - Microsoft Dynamics CRM 2013 (CRM-Webservice) 支持的交易

    web-services - 部署 WCF 服务

    email - 推荐使用 REST API 的电子邮件服务器?

    java - 如何将数据从一个网络服务发送到另一个网络服务?

    c# - 在 Web API 项目中调用 Web 服务...在哪一层调用?