Api服务的网关

问题描述:

我正在用Java开发Web服务。现在让我们说我有10个服务,我希望我的所有服务只能通过Apigateway访问。Api服务的网关

现在让我们说我有一个API调用需要调用4个服务说A,B,C,D为 首先A服务需要调用,然后使用O/P B和C可以并行呼叫 然后最后使用B的O/P号码C呼叫服务D.

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

现在这个系列和平行组合可以是任何东西。 有没有这样做的任何开源实现。我的意思是我提供了场景,它会自动发送请求,还是我必须开发此网关?

这...

首先一个服务需要被调用,然后使用O/P B和C可以并行然后最终采用B &的O/P调用C的服务被称为D.

...听起来像一个企业集成模式。 Spring IntegrationCamel都提供了编写/编排服务调用的支持。

在你的例子中,这些调用可以组成一个'消息流'(在XML中定义或者在这些库的内部DSL中定义),并且这个消息流可以使用库的内置支持来路由调用,呼叫,聚合响应等。路由AB,C可能会使用多播,使用BC的输出来调用D可能会使用聚合和路由。

此外,这些库支持:

  • 无论在进程和远程调用
  • 非函如相关标识符,throttlers,延迟器等

有两种流行的项目可用于你的情况:

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

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

+0

zuul我不认为不能使用?因为我不能聚合多个请求?它的正义路线?那么我如何使用zuul来汇总请求呢?就像我在我的问题 –

+0

中提到的场景一样,zuul只是一个路由器,我在api gatway项目中将它与camel一起使用。有时在网关中,您只想将请求重定向到其他服务。 – Muatik