【问题标题】:Question about separating service into microservices关于将服务拆分为微服务的问题
【发布时间】:2021-04-02 16:26:45
【问题描述】:

目前我们的核心服务包含用户和管理员用户的功能。 我们希望将用户和管理员功能分离到不同的微服务中。因此,减少它们的负载并分离代码库(尽管有些代码会重复)。 这些微服务将使用相同的数据库。

您认为,将微服务分开是个好主意吗? 什么是优点和缺点?有没有这方面的最佳做法?

【问题讨论】:

    标签: java architecture admin


    【解决方案1】:

    如果两个微服务共享同一个数据库,它们在数据库架构、数据库结构、可用性、部署等方面有很多依赖关系,因此它们没有达到微服务的核心要求之一,即每个微服务都是真正的独立的。所以它们不是两个微服务,而是一个复杂的微服务。

    共享/重复代码进一步表明将微服务分成两个并不是最好的主意。

    令我更加惊讶的是,您期望通过将负载拆分为用户和管理服务来获得有关负载的好处。通常,与用户相关的负载相比,与管理员相关的负载非常小。因此,我预计今天 99% 的负载在拆分后仍将流向用户服务。如果是这样,您将无法实现最初的目标。

    总的来说,我认为这是一个坏主意。我根本看不到任何优势。如果负载过大是主要问题,则通过运行当前微服务的多个实例来解决。

    【讨论】:

      猜你喜欢
      • 2020-05-06
      • 2016-09-28
      • 2020-03-03
      • 2018-06-28
      • 1970-01-01
      • 2021-02-26
      • 2021-04-02
      • 2021-09-08
      • 2021-02-27
      相关资源
      最近更新 更多