Microservices 如何从微服务获取分组数据?

Microservices 如何从微服务获取分组数据?,microservices,Microservices,假设我们有一个存储约会的系统。每次预约都有多个资源(如培训师、房间等)。我们已决定将所有约会数据移动到约会服务中,将所有资源移动到资源服务中 现在,我们需要一个用户界面来显示约会的筛选器,以便按培训师进行筛选。通常,您只希望显示实际有约会的培训师的复选框,而不是所有培训师的复选框 这意味着我们不能真正使用资源服务获取所有培训师,相反,我们必须要求预约服务获取至少有一次预约的所有培训师的分组视图。然后,我们必须打电话给资源服务,以获取有关每个培训师的更多信息 那么,如何从微服务中获取分组数据呢 编

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

现在,我们需要一个用户界面来显示约会的筛选器,以便按培训师进行筛选。通常,您只希望显示实际有约会的培训师的复选框,而不是所有培训师的复选框

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

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


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

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

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

在不知道系统的细节的情况下,我会假设对数据库进行非规范化将是阻力最小的路径

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


我肯定其他人会有其他想法,但基于我对你们整个系统所知甚少,很难说;然而,我认为这是一个有趣的问题,我将遵循这个问题,看看其他人提出的解决方案是什么。

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