【发布时间】:2019-07-07 11:37:42
【问题描述】:
我想使用 apache camel 多次调用外部 REST 服务。在所有调用完成后,我想汇总结果。我知道我可以使用camel FAQ 中定义的骆驼进行一次通话,如下所示:
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
rest("/say")
.get("/sample").to("direct:hello")
.toD("placeIwantToCall")
}
};
}
但我不知道如何多次调用它。
目标: 我需要调用这个外部休息服务的次数随着时间的推移而不同。 (有时是 1,有时是 10,等等。但是,我会知道这个数字,因为我可以从传入的标头中读取它)一旦所有调用完成,我想将所有结果聚合成一个大结果。我怎样才能在 Apache Camel 中做到这一点? (这个问题的解决方案:Apache camel to aggregate multiple REST service responses:可能可以在这里使用,但我很难弄清楚我将如何使用它。
【问题讨论】:
-
创建一个剩余调用列表,将列表发送到拆分器,它将汇总响应。由于您事先知道列表中的项目数量,这应该很简单。
-
需要多次调用同一个rest端点,还是调用不同的端点?
-
请参阅下面我提出的解决方案。
-
@fg78nc 同一端点,多次,聚合结果。现在看看你的代码来理解它。
标签: java apache-camel