Join 微服务和域逻辑连接

Join 微服务和域逻辑连接,join,architecture,microservices,Join,Architecture,Microservices,微服务部署在自己的数据库上 当业务需求需要跨多个服务中的数据连接时,您会采用什么策略 问题示例:您正在实现一个电影评论站点。您有一个保存电影数据库的电影微服务。您还有一个review microservice,它在自己的单独数据库中管理评论。评论通过GUID链接到电影;但由于这些都是作为单独的数据存储实现的,因此不是关键约束 您希望提供一份报告,精确到最后一分钟,该报告将按照电影的第一个字母(评论字数>25个单词)分组,告诉您每个评论级别的评论总数。您目前拥有40000部电影的500万条评论 例

微服务部署在自己的数据库上

当业务需求需要跨多个服务中的数据连接时,您会采用什么策略

问题示例:您正在实现一个电影评论站点。您有一个保存电影数据库的电影微服务。您还有一个review microservice,它在自己的单独数据库中管理评论。评论通过GUID链接到电影;但由于这些都是作为单独的数据存储实现的,因此不是关键约束

您希望提供一份报告,精确到最后一分钟,该报告将按照电影的第一个字母(评论字数>25个单词)分组,告诉您每个评论级别的评论总数。您目前拥有40000部电影的500万条评论

例如,超过25个单词的评论:

A[8457 1星][16615 2星][。。。 B[98445 1星][80210 2星][。。。 ...
在为您的项目选择了微服务体系结构之后,您现在会采用什么策略来实现此功能?

如果您需要按电影标题的第一个字母检索评论,请在评论服务上添加一个名为电影评论键的属性,甚至是电影标题本身


我不得不艰难地认识到,非规范化是微服务中的一种生活方式。如果你试图严格规范你的服务,你最终会有太多的闲聊。像电影标题这样很少改变的东西肯定会被复制到单独的商店。

我想在这一点上我会问自己,doma到底是什么如果域严格地呈现电影和电影评论,我的问题是为什么有两个独立的服务,电影和电影评论服务

本质上,我会将这两个服务合并为一个服务,并称之为电影评论服务,因为电影评论才是最重要的。在这种情况下,加入就不再有问题了

就我个人而言,我认为真正要问的问题是电影服务是否应该存在以及它扮演什么样的角色。在你的例子中,将其拆分为一个单独的服务似乎是无关的。虽然这可能不是一个令人满意的答案,但所提供的例子在技术上过于简单,无法使微服务体系结构变得有价值因为需要分离关注点才能将它们进一步分解为多个服务的组件较少

如果这个例子足够复杂,可以保证一个微服务体系结构拥有这两个独立的服务,那么这只是为了完全非规范化而对影评服务和电影服务中的数据进行冗余的问题将多个请求发送到非常细粒度的服务,从而形成反模式-纳米服务体系结构。希望这能有所帮助

在为您的项目选择了微服务体系结构之后,是什么 您现在会采用哪些策略来实现此功能

假设将应用程序拆分为微服务是正确的,我想说,不需要联接

在最终用户web应用程序中,您可以通过查询review microservice获得满足报告条件的审阅实体列表。其中没有电影对象,只有它们的GUID。然后您迭代收集电影GUID时收到的集合,并要求电影microservice为您提供具有这些GUID的对象

然后,您只需使用两个由id键控的对象集合向用户呈现报告,例如


这对您有用吗?

使用这种方法,下一版本的my Review service将通过为电影的第一个字母添加属性,包括500万条记录的数据更新。它还需要更新create Review实现以获取电影的标题,但允许create Review API保留same.对于这个特定的案例是可行的。我们是否只是按照客户要求的属性为下一组继续使用这种方法:主管、年度发布、参与者出现等?企业如何从微服务存储库中的数据处理BI、透视表等?BI是与微服务完全不同的关注点。就其本质而言,B我必须使用来自不同来源的内容,并将其连接在一起,通常在数据仓库中实现。我从未见过BI使用运行时服务完成。它始终作为事后ETL过程实现。如果电影的第一个字母包含在非规范化数据中以供审阅,我可以看到这是如何工作的。下一次发布ase of my review service将创建一个表,将电影GUID映射到第一个字母40,00条记录,或更新500万条个人评论记录。此报告成功后,出现了一个问题,即客户请求对多条记录进行聚合
d更多维度。也许在这一点上,这真的是一个商业智能问题,是时候将数据传输到另一个系统中进行此类查询了。谢谢。Nano/pico/yatto服务,下一个热潮?我也觉得有必要以这种方式来处理这个问题。谢谢,没问题!我认为“微服务”这个词是一个有点超载的词。Nanoservice实际上是反模式的一个术语,它通常意味着它已经超越了微服务架构。实际上,在微服务阶段,它应该已经足够细化,因为它应该遵守单一责任原则。这可能只是一个误解,因为micro似乎认为它是可测量的,但我不会说它是完全可测量的。这实际上取决于您的域以及单一服务的责任。