Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 服务的Api网关_Java_Spring Boot_Api Gateway - Fatal编程技术网

Java 服务的Api网关

Java 服务的Api网关,java,spring-boot,api-gateway,Java,Spring Boot,Api Gateway,我正在用Java开发web服务。现在让我们假设我有10个服务,我希望我的所有服务都只能通过Apigateway访问 现在让我们假设我有一个API调用,它需要调用4个服务,比如A、B、C、D,以便 首先需要调用服务,然后使用o/p B和C可以并行调用 最后使用B&C的o/p调用服务D 然后合并o/p并返回响应 现在这个串联和并联的组合可以是任何东西。 是否有任何开源实现可以做到这一点。我的意思是,我提供场景,它会自动发送请求,还是我必须开发这个网关?这个 首先需要调用A服务,然后使用o/p B和C

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

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

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

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

这个

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

。。。听起来像是一种企业集成模式。和都提供对组合/编排服务调用的支持

在您的示例中,调用可以组合成XML或这些库的内部DSL中定义的“消息流”,该消息流可以使用库的内置支持来路由调用、多播调用、聚合响应等。路由a到B、C可能使用多播,使用B和C的输出调用D可能会使用聚合和路由

此外,这些库还支持:

进程内调用和远程调用 非函数,如相关标识符、节流器、延迟器等。
在您的案例中可以使用两个流行的项目:

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

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


zuul我不认为不能使用?因为我不能聚合多个请求?这就是路线吗?那么,如何使用zuul聚合请求呢?就像我在问题中提到的场景一样是的,zuul只是一个路由器,我在api gatway项目中将它与camel一起使用。有时在网关中,您只希望将请求重定向到其他服务。