我正在使用弹簧靴。我正在打电话给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。
我们缺少什么?