0

我正在用 Java 开发 Web 服务。现在假设我有 10 个服务,我希望我的所有服务都只能通过 Apigateway 访问。

现在假设我有一个 API 调用,它需要调用 4 个服务,例如 A、B、C、D,因为首先需要调用 A 服务,然后使用 o/p B 和 C 可以并行调用,最后使用B & C 的 o/p 调用服务 D。

然后结合 o/p 并返回响应。

现在这个串联和并联组合可以是任何东西。是否有任何开源实现可以做到这一点。我的意思是我提供了场景,它会自动发送请求,还是我必须开发这个网关?

4

2 回答 2

1

这个 ...

首先需要调用 A 服务,然后使用 o/p B 和 C 可以并行调用,最后使用 B 和 C 的 o/p 调用服务 D。

...听起来像是一种企业集成模式。Spring IntegrationCamel都支持组合/编排服务调用。

在您的示例中,可以将调用组合成“消息流”(在 XML 或这些库的内部 DSL 中定义),并且该消息流可以使用库对路由调用、多路转换调用、聚合响应的内置支持等路由ABC可能使用多路转换,使用来自BC调用的输出D可能使用聚合和路由。

此外,这些库支持:

  • 进程内调用和远程调用
  • 非功能性,例如相关标识符、节流器、延迟器等。
于 2017-08-14T07:17:18.607 回答
0

在您的情况下可以使用两个流行的项目:

  1. camel:通过定义 XML 规则,您可以在服务甚至 bean 之间创建流。我使用 Camel 来完成类似的任务。

  2. zuul:这就像一个路由器,你可以立即将请求重定向到其他服务或编写一些逻辑来控制流量。

于 2017-08-14T07:34:57.757 回答