与http-outbound-gateway并行执行请求

时间:2014-07-24 08:35:20

标签: java spring spring-integration

我需要在具有不同查询参数的特定域上执行大量的http请求,并且我计划使用弹出集成的出站网关,其配置类似于下面的代码段:

<int-http:outbound-gateway id="httpOutboundGateway" request-channel="requestChannel"
        url="http://www.google.com" http-method="GET" reply-channel="responseChannel"
        expected-response-type="java.lang.String" charset="UTF-8" reply-timeout="5000"
        message-converters="" >
</int-http:outbound-gateway>

我想使用一些线程池并行地在请求通道中执行请求。在这方面我有以下问题:

  1. 将ExecutorChannel配置为请求通道会自动并行执行请求。
  2. 如果对问题1的回答是肯定的,那么http:outbound-gateway thread safe。
  3. 如果问题1的答案为否,则如何配置并行执行http请求

1 个答案:

答案 0 :(得分:0)

实际上它取决于上游流量。如果您从同一个线程的循环内的代码发送到requestChannel,您的所有请求将逐个串行处理。

如果所有的请求来自Web上的最终用户,则每个请求都将在该线程内完成。

如果您的上游流程是多线程的,则无需继续使用ExecutorChannelThreadPool

所有Spring Integration Component都是线程安全的。我们整天争取那些东西。由于Spring Integration用于Messaging,我们没有上下文,所有这些组件都是stateless

HTH