我正在用Java开发Web服务。现在假设我有10项服务,我希望我的所有服务都只能通过Apigateway访问。
现在假设我有一个API调用,它需要按顺序调用4个服务,如A,B,C,D 首先需要调用服务,然后使用o / p B和C可以并行调用 然后最后使用B&的o / p C呼叫服务D.
然后结合o / p并返回响应。
现在这个系列和并行组合可以是任何东西。 是否有任何开源实现可以做到这一点。我的意思是我提供方案,它会自动发送请求,还是我必须开发这个网关?
答案 0 :(得分:1)
这......
首先需要调用服务,然后使用o / p B和C可以并行调用,最后使用B&的o / p。 C呼叫服务D.
......听起来像企业集成模式。 Spring Integration和Camel都支持撰写/编排服务调用。
在您的示例中,调用可以组成“消息流”(在XML中或在这些库的内部DSL中定义),并且此消息流可以使用库的内置支持来路由调用,多播调用,汇总回复等。将A
路由到B
,C
可能会使用多重投射,使用B
和C
的输出来调用D
可能会使用聚合和路由。
此外,这些库支持:
答案 1 :(得分:0)
在您的案例中可以使用两个受欢迎的项目:
驼: 通过定义XML规则,您可以在服务甚至bean之间创建流。我使用Camel执行类似的任务。
zuul:这就像一个路由器,你可以立即将请求重定向到其他服务,或者写一些逻辑来控制流量。