首页 > 解决方案 > 多个微服务的单一整合响应

问题描述

我们有多个微服务并行处理相同的输入。我们必须从这些微服务中获取响应,并将其整合为针对批量的单个响应。我们曾考虑使用 hazelcast 来执行此操作,但我只是想了解执行此操作的最佳和最高效的方法。有人可以建议一些相同的方法或工具。只需一个指针就足够了。我只是在寻找正确的方向,剩下的我可以做。提前致谢。

标签: springspring-bootmicroservices

解决方案


我会使用消息队列(例如KafkaSQS)在微服务之间进行异步通信,主要是因为它可能是扩展和保持微服务解耦的最佳方式。

在您的示例中,您的消息队列中可能有 3 个主题(X、Y 和 Z)。您的微服务“A”在主题 X 和 Y 中发布带有输入的消息。微服务“B”和“C”使用来自 X 和 Y 的消息,做他们需要做的事情并在主题 Z 中发回消息。微服务“A”也是消费者,从主题 Z 读取消息/输出,进行适当的合并。

请注意,来自“B”和“C”的输出可以嵌入到消息中,或者消息可以包含指向位于其他地方(例如数据库)的数据/输出的元数据。

希望能帮助到你!


推荐阅读