模块的微服务分组

Microservice grouping of modules

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

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

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

SOA 的第二条宗旨指出:

Services are autonomous

这里的意思是,服务之间应该尽可能没有水平耦合。从您的问题中举一个具体的例子, Department 服务不应与 Projects 服务耦合。

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

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

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