并发100的HTTPSolrClient运行缓慢

时间:2018-07-03 09:47:47

标签: spring-boot httpclient solrj

我正在使用弹簧靴。我正在打电话给solr以获取页面数据。为了获得solr连接,我正在使用HttpSolrClient

@Bean
    public HttpSolrClient solrServer() {
        String solrUrl = env.getProperty("solr.url");
        ModifiableSolrParams params = new ModifiableSolrParams();
        params.set(HttpClientUtil.PROP_MAX_CONNECTIONS, 1000);
        params.set(HttpClientUtil.PROP_MAX_CONNECTIONS_PER_HOST, 1000);
        params.set(HttpClientUtil.PROP_ALLOW_COMPRESSION, true);
        return new HttpSolrClient.Builder(solrUrl).withConnectionTimeout(1000).withSocketTimeout(8000).withInvariantParams(params).build();
    }

然后使用

调用solr
@Autowired
private HttpSolrClient solrClient;

response = solrClient.query(collection, solrQuery);

在正常情况下(没有任何并发​​),这大约需要200毫秒,而在某些请求中,并发100并发大约需要2000毫秒,而平均时间约为1500毫秒。

我也尝试过使用php curl进行相同的并发操作,以进行相同的solr查询,事实证明,平均时间仅花费300-400ms。

我们缺少什么?

0 个答案:

没有答案