【问题标题】:How to get grouped data from a microservice?如何从微服务中获取分组数据?
【发布时间】:2019-05-05 18:23:44
【问题描述】:

假设我们有一个系统来存储约会。每个约会都有多种资源(例如培训师、房间等)。我们决定将所有约会数据移动到约会服务中,并将所有资源移动到资源服务中。

现在我们需要一个显示约会过滤器的 UI,以便按培训师进行过滤。通常,您只想为实际有约会的培训师而不是所有培训师显示复选框。

这意味着我们不能真正使用资源服务来获取所有培训师,相反,我们必须要求预约服务获取至少有一个预约的所有培训师的分组视图。然后我们将不得不调用资源服务来获取有关每个培训师的更多信息。

那么如何从微服务中获取分组数据?

编辑:每个系统都有自己的数据库。我们还使用 RabbitMQ 在服务之间同步数据。

【问题讨论】:

  • 这是一个非常开放的问题 - 有许多可能的解决方案,例如非规范化数据结构、分区策略等。正确的解决方案将取决于您正在考虑的规模以及瓶颈在哪里。

标签: microservices


【解决方案1】:

这是一个有趣的问题,有许多可能的解决方案。 @Welbog 评论根据应用程序的规模提出了一个很好的观点。非规范化数据库显然是一种可能性。

获取分组数据是实现微服务的挑战之一,而且我们的服务越精细,这一挑战就越大。您的数据库设置是什么样的?我假设您的两个服务使用不同的数据库,否则您的问题会有一个简单的解决方案。

在不了解系统的来龙去脉的情况下,我会假设 非规范化您的数据库 将是阻力最小的路径。

您可以探索这两个服务实际上应该是一个服务的想法。纳米服务不是我们所追求的,有时将两个服务实际放在一起更合乎逻辑。必须一起改变的事情,应该被包含在一起。我并不是说这适用于您的情况,我只是说值得考虑。

我敢肯定其他人会有其他想法,但根据我对整个系统的了解,这很难说;但是我认为这是一个有趣的问题,我会跟进看看其他人提出的解决方案是什么。

【讨论】:

    猜你喜欢
    • 2020-11-15
    • 2014-11-07
    • 2017-12-28
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多