每个数据库表的微服务?

时间:2016-04-26 23:41:28

标签: microservices

  • NativeCountry
  • SpokenLanguages

有关于MIcroservice粒度的查询。将尝试用一个例子解释我的查询。

假设我在数据库中有3个以上的表,在Person之间有多对一的关系 - > NativeCountry表。人与人之间的一对多关系 - >语言在数据库中使用。

前端应用程序假设对人员实体进行CRUD操作,并且还具有基于本地语言或口语语言检索人员的能力。

为每个实体开发3个独立的微服务是否有意义,然后在上层使用Aggregator Microservice为UX层构建组合数据,或者我应该考虑将这些组合在一起构建单个微服务?

1 个答案:

答案 0 :(得分:1)

根据您对问题的描述,如果我理解正确的话,听起来“人”就是功能的中心和服务的使用案例。

  • 按原籍国搜索人
  • 按语言搜索人员
  • 添加一个包含其本国和所用语言的人
  • 列出所有语言

由于三个必需的功能是围绕人和一个功能只需要列出语言,我认为这应该是一个微服务(再次不知道是否有外部服务依赖于其他可能的实体服务)。我在这里的论点是,为了满足请求,人们是本国感兴趣的实体,语言只是检索用户的维度。

如果将每个实体,人员,语言和国家分成不同的微服务,服务将会太小而且复杂性会增加,例如。您可能需要向多个服务发出多个请求以生成单个响应,而可能不需要。至于最后一个并不完全围绕着人们的功能,我会说它在微服务中的功能太小了。在需要将最后一个功能作为独立服务之前,我建议将其置于“人员”微服务中。