【发布时间】:2017-04-25 03:02:06
【问题描述】:
我的应用程序打算定期向 Solr 插入文档。有两个考虑:
- 向 Solr 发送更新请求是对性能的关键影响。
- 事务的线程安全。 SolrClient 的提交不是线程安全的(如果我错了请指出这一点),当多个用户向 Solr 输入文档时,这可能会导致严重的问题。
我发现ConcurrentUpdateSolrClient 是一种候选解决方案,它是线程安全的,并且它有一个队列可以在一个连接中缓冲和刷新许多文档。但是当我测试它时我很困惑。我的问题是,
- 如果我设置了队列大小,我还需要提交吗?
- 如果我提交,即使队列中只有一个文档,它仍然会向 Solr 提交一个 http 请求。我可以让它作为消息队列工作吗?
【问题讨论】:
标签: multithreading solr solrj