我使用PoolingHttpClientConnectionManager用于发送多个并行的GET/POST请求以下服务:如何使用PoolingHttpClientConnectionManager限制同一主机(setMaxPerRoute)的连接?
(1)http://localhost:8080/submit
(2)http://localhost:8080/query
两种服务大量使用,但所述第一服务(1)具有更高的优先权。
我需要为服务(1)设置setMaxPerRoute,以便它将消耗80%的可用连接。 剩余的20%限制将被分配给具有较长超时的其他请求(包括服务(2))。这里是我的代码:
...
PoolingHttpClientConnectionManager httpClientManager =
new PoolingHttpClientConnectionManager();
httpClientManager.setMaxTotal(10);
httpClientManager.setDefaultMaxPerRoute(2);
HttpHost httpHost = new HttpHost("http://localhost/submit",8080);
HttpRoute submitRoute = new HttpRoute(httpHost);
httpClientManager.setMaxPerRoute(submitRoute, 8);
...
问题是,HttpHost显然不能相同,以区分不同的路线。实际上,两个URL具有相同的主机(http://localhost:8080),但具有不同的请求页面。在结果中,两个服务都使用相同的资源。
有什么办法可以对同一个主机实现这样的限制吗?
感谢您的帮助。