镜像外部API并与其他数据作为微服务合并

时间:2018-07-29 20:00:20

标签: architecture microservices

用例

我正在计划一个应提供以下功能的系统:

前端

您具有以下类别:“当前流行”,“新来者”,“经典”。每个类别应显示适合类别标题的电影列表。

后端:

哪个电影属于哪个类别的决定主要取决于收视人数与电影发行日期/年龄的比率。

我计划从以下两个外部来源(公共API)收集数据:

  1. 电影-关于哪些电影存在以及电影本身的元数据的真实来源。基本上是IMDB

  2. 电影观看人数-一个外部API,可告诉我每天,每种媒介(电影,netflix等)观看电影的人数以及其他统计信息。

我需要将统计信息从来源2映射到来源1的电影,因此这两个域之间存在通信(和耦合?)的内在必要性。


作为面向微服务的系统会如何?

解决方案A

我应该有一个“游戏服务”,它将源1的数据保存到一个表中,将源2的统计数据保存到另一个表中,并从单个端点公开合并的数据。

OR

解决方案B

我应该为每个提供两个不同的服务,然后将数据合并到我的api网关中。在这种情况下,我该如何建模必须将统计信息映射到我的实况电影服务/数据库的固有依赖性?


想法

我了解domain object = microservice is not the way to go,因此文献和社区“告诉”我选择解决方案A,但从直觉上来说,我更喜欢解决方案B。如果我想在将来显示电影预告片并提供第三个外部API,该怎么办对于那些。我会在单一服务中塞满这些服务还是创建一个新服务?

我没有经验,但坦率地说,我对域驱动的设计或软件体系结构没有足够的了解,无法在这里得出明智的结论。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这看起来更像是ETL工具要解决的问题:https://en.m.wikipedia.org/wiki/Extract,_transform,_load

我知道AWS提供了称为“ Glue”的ETL服务:https://docs.aws.amazon.com/glue/latest/dg/getting-started.html