SolrJ 线程安全

2023-12-23

我在 Web 应用程序中使用 CommonsHttpSolrServer。在多个请求中重用 CommonsHttpSolrServer 是否安全,还是应该为每个请求实例化一个新对象?无法在 API 文档中找到答案。


根据文档 http://wiki.apache.org/solr/Solrj#CommonsHttpSolrServer和源码注释一样,SolrJ 是线程安全的。

不过,更新 solr 时要小心。根据这个帖子 http://pivotallabs.com/users/austin/blog/articles/1322-standup-7-19-2010-solr-transactions-and-optimize-ing-gogaruco-tickets-selling-briskly,事务是按实例而不是按队列实现的。这意味着每个线程没有自己的隔离事务可以使用。回滚会将每个调用(无论发起线程如何)回滚到最后一次提交。

总的来说,这意味着您应该可以安全地使用任意数量的线程进行查询(使用相同的 CommonsHttpSolrServer)。但是,如果您希望利用回滚,则需要确保一次只有一个线程更新您的 solr 实例(无论对象分布如何)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SolrJ 线程安全 的相关文章

随机推荐