【问题标题】:How to use camel send batch http request?如何使用骆驼发送批量http请求?
【发布时间】:2013-08-05 15:08:59
【问题描述】:

我有 1,000,000 个 ID,并且需要每天为每个用户调用一次 REST API。如何使用 Camel 发送批量 HTTP 请求?

我目前的解决方案是使用 Quartz 为每个 ID 创建一个 HTTP 组件。但它会创建 1,000,000 个 Quartz 工作,性能很差。

我有两个想法:

  1. 如果 Camel 可以提供批处理 API,我可以使用它发送 1,000,000 请求相同的 URL 但具有不同的参数。那是一个 石英作业。 Camel 是否支持该 API?

  2. 每个HTTP请求只访问一次,使用spring schedule 控制。但是对于每个请求,骆驼都会轮询服务器。我怎样才能 让 Camel 只调用一次 REST API?

这里的代码:

// ids is a List, contains 1,000,000 id
for (final String id : ids) {
    context.addRoutes(new RouteBuilder() {

        @Override
        public void configure() throws Exception {
            from(String.format("quartz://%s/?cron=0+0+12+*+*+?", id))
            .to(String.format("http:xxx.com?id=%s", id))
            .to("file:to");
        }

    });
}

【问题讨论】:

    标签: apache-camel quartz-scheduler soa esb eip


    【解决方案1】:

    创建数百万个路由来发送具有不同 ID 的请求可能会更加麻烦。 借助bean,可以在bean方法中定义发送请求的循环。

    顺便说一句,您可以使用消息头“CamelHttpQuery”更改 id。

    【讨论】:

    • 有什么例子吗?你的意思是用消息头“CamelHttpQuery”更改id可以将多个请求聚合到一个?
    猜你喜欢
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2017-12-09
    相关资源
    最近更新 更多