我正在开发员工管理系统并遵循微服务式架构。最初,我创建了ERD并设计了几个主维护表,如Department,Project,Position等......
我的问题是我是否必须为每个表创建一个服务?或者我应该为所有这些表创建一个名为主维护的服务吗?
请帮我决定。提前谢谢。
答案 0 :(得分:3)
SOA的第二个网络指出:
服务是autonomous
这意味着尽可能地在服务之间不应该存在水平耦合。从您的问题中提取具体示例,部门服务不应与项目服务相关联。
但是,通过在单个数据库中对部门和项目数据建模,您已经引入了它们之间的耦合。
要解除您的服务,您应该为每个服务提供自己的数据库。然后,服务必须通过其他机制进行通信,以便彼此交换数据,而不是通过数据库。
但是,这种方法会给您的解决方案带来复杂性。这称为 microservice premium 。您应该问问自己,这个成本是否值得基于微服务的方法的好处,至少开始时。