【问题标题】:In a microservices based architecture how would i go about database access?在基于微服务的架构中,我将如何进行数据库访问?
【发布时间】:2018-04-10 14:27:18
【问题描述】:

我正在努力推动自己为个人项目开发一组微服务,这些微服务本质上将:

使用弹性搜索 轮询各种数据存储 放置数据并从数据存储中读取数据 向用户公开一个rest api

就本示例而言,假设我有一个预订 MS 和一个销售 MS

我首先想到的是如何处理数据存储。

  1. 每个 MS 都应该有自己的数据存储吗?
  2. 我是否应该引入一个持久性 MS 来处理来自所有其他微服务的所有数据(这样做似乎很奇怪)。
  3. 是否应该每个 MS 共享一个数据库但处理自己的事务。

如果您让每个服务都处理自己的持久性,这不会使微服务显着膨胀到您拥有大量样板代码和大量库的整体占用空间的程度(例如,hibernate 将是必需的跨每个项目的库,让每个 MS 都必须加载相同的库集似乎很糟糕)。

所以我认为最重要的问题是管理跨微服务架构的数据库连接的公认方法是什么。

【问题讨论】:

    标签: database hibernate microservices


    【解决方案1】:

    这个问题的答案很简单:

    • 不要尝试构建分布式单体:不要将持久层构建为微服务。
    • 不要尝试执行分布式事务,而是尝试通过具有域绑定服务来获得功能性方法。
    • 您必须在多个微服务中包含 Hibernate。这是您必须接受的权衡。

    【讨论】:

      猜你喜欢
      • 2019-11-11
      • 2019-07-23
      • 2021-08-02
      • 2020-09-12
      • 1970-01-01
      • 2019-03-03
      • 2014-01-08
      • 1970-01-01
      • 2020-02-08
      相关资源
      最近更新 更多