我正在研究Netty HTTP客户端示例代码,以便在并发、线程环境中进行HTTP请求。然而,我的系统在相当低的吞吐量下完全崩溃(伴随着一连串的异常)。简单来说:
在这个例子中,为了发起请求,我创建了一个ClientBootstrap,并通过一些步骤创建了一个Channel来编写HTTPRequest。
这一切都很正常和好。但是,在并发情况下,每个请求都应该通过相同的步骤吗?我认为这就是目前出现问题的原因。我应该重复使用连接还是以完全不同的方式构建我的客户端?
另外:我正在Clojure中进行此操作,如果有任何区别,请告诉我。
ClientBootstrap bootstrap = new ClientBootstrap(new NioClientSocketChannelFactory())
bootstrap.setPipelineFactory(new HttpClientPipelineFactory());
ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));
Channel channel = future.awaitUninterruptibly().getChannel();
HttpRequest request = new DefaultHttpRequest();
channel.write(request);
在这个例子中,为了发起请求,我创建了一个ClientBootstrap,并通过一些步骤创建了一个Channel来编写HTTPRequest。
这一切都很正常和好。但是,在并发情况下,每个请求都应该通过相同的步骤吗?我认为这就是目前出现问题的原因。我应该重复使用连接还是以完全不同的方式构建我的客户端?
另外:我正在Clojure中进行此操作,如果有任何区别,请告诉我。