【问题标题】:Microservice grouping of modules模块的微服务分组
【发布时间】:2016-04-16 04:55:49
【问题描述】:

我正在开发一个员工管理系统并遵循微服务式架构。最初,我创建了 ERD 并设计了几个主维护表,如部门、项目、职位等......

我的问题是我必须为这些表中的每一个创建一个服务吗?还是应该为所有这些表创建一个称为主维护的单一服务?

请帮我做决定。提前谢谢你。

【问题讨论】:

  • 这是一个非常抽象的问题。您是否要求为您的场景提供设计模式?你能把问题说得更具体一点吗?
  • 我想知道最佳实践是什么,例如我有 100 个不属于事务的表,但它们用于 CRUD 操作,这是否意味着我必须创建 100 个微服务?
  • 我不熟悉这个词,主维护表。它是不是一个查找表而是一个实际上具有有意义的域值的表?
  • 主维护不是一个表,它是一个具有基本 CRUD 操作但不属于事务的表的集合。

标签: soa microservices


【解决方案1】:

SOA 的第二条原则:

服务是autonomous

这意味着服务之间应该尽可能不存在水平耦合。从您的问题中举一个具体的例子,部门服务不应该与项目服务耦合。

但是,通过在单个数据库中对部门和项目数据进行建模,您已经在它们之间引入了耦合。

为了解耦您的服务,您应该为每个服务提供自己的数据库。然后,服务将不得不通过某种其他机制进行通信以相互交换数据,而不是通过数据库。

但是,这种方法会给您的解决方案带来复杂性。这被称为 microservice premium。您应该问问自己,这种成本是否值得从基于微服务的方法中获益,至少在开始时是这样。

【讨论】:

  • 感谢您的意见,现在我知道如何处理我的问题了。
猜你喜欢
  • 2018-01-27
  • 2019-04-10
  • 2018-03-26
  • 2021-04-12
  • 2022-12-24
  • 2014-11-07
  • 1970-01-01
  • 2021-07-03
  • 2020-04-14
相关资源
最近更新 更多