针对多个微服务的单一合并响应

时间:2018-08-31 12:59:24

标签: spring spring-boot microservices

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

2 个答案:

答案 0 :(得分:0)

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

在您的示例中,您的消息传递队列中可以包含3个主题(X,Y和Z)。您的微服务“ A”在主题X和Y中发布带有输入的消息。微服务“ B”和“ C”使用X和Y中的消息,执行其所需操作,并在主题Z中回发消息。微服务“ A”还是消费者,并且从主题Z读取消息/输出,进行适当的合并。

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

希望有帮助!

答案 1 :(得分:0)

也许Spring-WebFlux是您的服务选择。它允许并行地将请求分派到不同的服务,处理结果并将响应提供给客户端。

https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html