我们在本地环境中有一个小型搜索应用程序。对于后台服务,我们使用 Apache Solr 6.6.2 进行数据索引和存储。前端采用 PHP 和 Apache2 网络服务器。
我们有一台 48 核和 96 GB RAM 的服务器,安装了这些服务。索引中的文档预计大小约为 2 亿,每个文档最多可以有 20 个字段。大多数字段都被索引和存储。
预计同时发生的请求可能会达到数十万个。那么 Apache Solr 处理它的最佳配置是什么?我们启动了具有 20 GB RAM 的 Solr 并进行了压力测试,但在接近 100 个用户时它开始降低性能。哪里有问题?这个问题的最佳方法是什么。
我们也在SolrCloud模式下测试了Solr,但性能并没有提高太多。我们原以为如果出现内存问题,就会出现 OOM 异常,但并没有发生这样的事情。我们刚刚根据我们的要求更改了架构,并通过命令行更改了内存。所有其他设置均为默认设置。
以下是我们已经查阅过的一些引用资料
最佳答案
每个集合中有 2 亿条记录,并且有 200 个集合。我们有 5 台服务器,每台服务器有 8 个核心和 64 GB 内存。
我建议您将服务器分成多个服务器。
在每台服务器上复制数据,以便将请求分为多个服务器。服务器数量越多,您的响应速度就越快。
注意: 只需了解复制因子:2F+1 公式,如果您有 5 台服务器,则至少应该有 3 个副本。我建议您仅使用 5 个副本(每个服务器 1 个副本)
关于java - Apache Solr 处理数十万个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54121847/