Docker Java客户端API连接池

时间:2015-08-31 09:15:07

标签: java multithreading docker client connection-pooling

我在EE平台中使用Docker-client API(https://github.com/spotify/docker-client)来管理远程机器上的一堆容器。在Docker实例中运行的Java SE Client以处理工作。处理完成后,从se客户端获取响应,重新启动容器,让它在单独的线程中等待15秒,并在时间结束后暂停该容器。但是当我通过DefaultDockerClient或DockerClient在多线程中暂停容器时会出现问题。虽然我在1000上设置connectionpoolsize,但是在暂停工作时我会遇到异常。我已经为PoolingHttpClientConnectionManager调试了几个小时是否已设置。是的。它已经设置为1000.但它并不适用于并行请求?有没有人有想法,为什么它不起作用?

引起:java.util.concurrent.ExecutionException:javax.ws.rs.ProcessingException:无法调用请求 at java.util.concurrent.FutureTask.report(FutureTask.java:122) 在java.util.concurrent.FutureTask.get(FutureTask.java:188) at com.spotify.docker.client.DefaultDockerClient.request(DefaultDockerClient.java:1019) ... 9更多

引起:javax.ws.rs.ProcessingException:无法调用请求 在org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine.java:287) 在org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:407) 在org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:442) 在org.jboss.resteasy.client.jaxrs.internal.ClientInvocation $ 2.call(ClientInvocation.java:477) 在java.util.concurrent.FutureTask.run(FutureTask.java:262) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615) 在java.lang.Thread.run(Thread.java:745)

引起:java.lang.IllegalStateException:无效使用BasicClientConnManager:仍然分配了连接。 确保在分配另一个连接之前释放连接。 在org.apache.http.util.Asserts.check(Asserts.java:34) at org.apache.http.impl.conn.BasicClientConnectionManager.getConnection(BasicClientConnectionManager.java:160) at org.apache.http.impl.conn.BasicClientConnectionManager $ 1.getConnection(BasicClientConnectionManager.java:142) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:423) at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) 在org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 在org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) 在org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine.java:283)

0 个答案:

没有答案