如何解决Apache Http Client中的锁争用问题

时间:2017-01-06 04:51:36

标签: java multithreading apache-httpclient-4.x

我正致力于优化与数据库通信的元数据服务。我发现的一个瓶颈是线程超时等待连接池的连接(超时= 1s)。仔细研究堆栈转储后,似乎有很多线程在org.apache.http.pool.AbstractConnPool里等待锁定。

ApacheHttpClient:4.5.x

ApacheHttpCore:4.4.x

MaxNumberOfConnection:900

连接超时:1s

克服这个瓶颈的任何想法?

1 个答案:

答案 0 :(得分:0)

也许你可以考虑另一种方法。 900个http请求对于一个服务提供商来说太重了。 对于着名的servlet容器(tomcat或jetty),它可以同时处理300-500个请求连接。

您可以部署两个或三个服务提供商来组建集群,使用nginx或apache http服务器来分派请求。