Api服务网关

时间:2017-08-14 07:00:28

标签: java spring-boot api-gateway

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

现在假设我有一个API调用,它需要按顺序调用4个服务,如A,B,C,D 首先需要调用服务,然后使用o / p B和C可以并行调用 然后最后使用B&的o / p C呼叫服务D.

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

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

2 个答案:

答案 0 :(得分:1)

这......

  

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

......听起来像企业集成模式。 Spring IntegrationCamel都支持撰写/编排服务调用。

在您的示例中,调用可以组成“消息流”(在XML中或在这些库的内部DSL中定义),并且此消息流可以使用库的内置支持来路由调用,多播调用,汇总回复等。将A路由到BC可能会使用多重投射,使用BC的输出来调用D可能会使用聚合和路由。

此外,这些库支持:

  • 进程内和远程调用
  • 非功能性,如相关标识符,节流器,延迟器等。

答案 1 :(得分:0)

在您的案例中可以使用两个受欢迎的项目:

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

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