我需要在具有不同查询参数的特定域上执行大量的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>
我想使用一些线程池并行地在请求通道中执行请求。在这方面我有以下问题:
答案 0 :(得分:0)
实际上它取决于上游流量。如果您从同一个线程的循环内的代码发送到requestChannel
,您的所有请求将逐个串行处理。
如果所有的请求来自Web上的最终用户,则每个请求都将在该线程内完成。
如果您的上游流程是多线程的,则无需继续使用ExecutorChannel
和ThreadPool
。
所有Spring Integration Component都是线程安全的。我们整天争取那些东西。由于Spring Integration用于Messaging,我们没有上下文,所有这些组件都是stateless
。
HTH