【发布时间】:2012-04-10 12:46:38
【问题描述】:
我们有一个使用 SOLR 进行搜索的 PHP Web 应用程序。 APP 使用 CURL 连接到 SOLR 服务器,并与数千个预定义的关键字循环运行。这将在给定时间为 SOLR 创建数千个不同的搜索查询。
我的问题是,当单个用户登录应用程序时,一切都按预期工作。当有多个用户尝试运行应用程序时,我们会从服务器获取此响应。
无法连接到 xxx.xxx.xxx.xxx:无法分配请求 addressFailed to connect to xxx.xxx.xxx.xxx: Cannot assign requested 地址失败
我们的假设是,SOLR 服务器无法在给定时间处理这么多的搜索查询。如果是这样,克服这个问题的解决方案是什么? SOLR中有keep-alive之类的设置吗?
任何帮助将不胜感激。
谢谢,
阿伦斯
【问题讨论】:
-
每个用户请求都会向 SOLR 生成数千个请求?您需要相当高的可扩展性才能提供这样的服务
-
请解释一下为什么您需要为单个用户的请求连续运行一千次查询?您可能需要重新设计您的应用程序。同时,让您的程序在请求之间休眠 75 毫秒(愚蠢的经验法则!)以减少随机故障(如果这是您遇到的情况)。
-
同意上述。如果关键字是预定义的并且有很多关键字,那么最好将循环作为计划任务执行(例如,每天一次)并将结果保存在某处。
-
也发布在 solr 用户邮件列表中:lucene.472066.n3.nabble.com/…
-
@aitchnyu 每个用户都有一个预定义的关键字字典,其中包含 500 个或更多关键字。假设我们有 500 个关键字和 10 个用户,那么 SOLR 总共有 500X10 个搜索查询。我们不能添加睡眠,因为它会减慢应用程序。 SOLR中是否有最大连接限制?有没有办法提高SOLR服务器的性能?
标签: performance solr