最佳实践为Web项目创建Solr HttpSolrServer对象的对象

时间:2015-04-09 11:34:36

标签: java http object solr solrj

我在Web项目中使用Solr-5.0.0。我只是在我的构造函数中创建HttpSolrServer对象,如下所示

static HttpSolrClient solr;

public SolrTestDAO() {
    if (solr == null) {
        solr = new ttpSolrClient("http://localhost:8983/solr/testDB");
    }
}

使用我的HttpSolrServer对象作为静态是否有任何问题,因为它是一个Web项目。如果它不是正确的方式可以任何人建议我正确的方式,所以我的应用程序性能将很高,内存使用率将太低。

1 个答案:

答案 0 :(得分:1)

不。实际上,这是使用HttpSolrServer的预期方式。以下是来自HttpSolrServer代码的评论片段:

  

HttpSolrServer是线程安全的,如果您使用以下构造函数,       你必须为所有请求重用相同的实例。如果创建了实例       苍蝇,它可以导致连接泄漏。建议的做法是保持一个       每个solr服务器url的HttpSolrServer的静态实例,并为所有请求共享它。

请参阅SolrJ Wiki Page。还有一篇有趣的博客文章,关于如果你不把它变为静态here会发生什么。