我在一个网络应用程序中使用CommonsHttpSolrServer。在多个请求上重用CommonsHttpSolrServer是否安全,或者我是否应该为每个请求实例化一个新对象?在API文档中找不到答案。
发布于 2011-07-19 01:49:25
根据documentation和源代码注释,SolrJ是线程安全的。
但是,在更新solr时要小心。根据this post的说法,事务是按实例而不是按队列实现的。这意味着每个线程都没有自己的独立事务来处理。Rollback会将每个调用(不管发起线程)回滚到最后一次提交。
总而言之,这意味着您应该可以安全地使用任意多个线程进行查询(使用相同的CommonsHttpSolrServer)。但是,如果您希望利用回滚,则需要确保一次只有一个线程在更新solr实例(无论对象分布如何)。
https://stackoverflow.com/questions/3371101
复制相似问题