假设我们有一个存储约会的系统。每个约会都有多个资源(例如培训师,房间等)。我们已决定将所有约会数据移至约会服务,并将所有资源移至资源服务。
现在,我们需要一个UI,该UI显示约会的筛选器,以按培训师筛选。通常,您只想显示实际有约会而不是所有培训师的培训师的复选框。
这意味着我们不能真正使用资源服务来获取所有培训师,相反,我们必须要求约会服务获取所有至少具有一次约会的培训师的分组视图。然后,我们将不得不致电资源服务来获取有关每个培训师的更多信息。
那么如何从微服务中获取分组数据?
编辑:每个系统都有自己的数据库。我们还使用RabbitMQ在服务之间同步数据。
答案 0 :(得分:0)
这是一个有趣的问题,有许多可能的解决方案。 @Welbog注释根据应用程序的规模对此做了很好的说明。规范化的数据库显然是可能的。
获取分组数据是实现微服务的挑战之一,而我们的服务越精细,这一挑战就越大。您的数据库设置是什么样的?我假设您的两个服务正在使用不同的数据库,否则您的问题将有一个简单的解决方案。
在不了解您系统的来龙去脉的情况下,我认为使数据库的规范化是阻力最小的途径。
您可能会发现以下想法:也许这两个服务实际上应该是一个服务。纳米服务不是我们所追求的,有时将两个服务实际结合在一起在逻辑上更有意义。必须一起改变的事物应该被包含在一起。我并不是说这适用于您的情况,我只是说这值得考虑。
我敢肯定其他人会有其他想法,但是基于我对您的系统整体了解不多,很难说。但是,我认为这是一个有趣的问题,接下来我将看看其他人提出的解决方案是什么。