您可以增加数据库允许的数据库连接数,但这并不是真正的解决方案。如果 SOLR 在索引时建立了很多连接,您网站的其他一些部分可能会开始出现“连接太多”,这是不好的。
实际上 SOLR 完全导入会产生如此多的连接,以至于我最多只能连接 150 个连接。
以下是一些统计数据:1) 我启动了完整的重新索引 2) 几秒钟后:
mysql> 显示进程列表; | 身份证 | 用户 | 主持人 | 分贝 | 命令 | 时间 | | 158 | xxx | 本地主机:58804 | 年年 | 查询 | 0 | | 159 | xxx | 本地主机:58810 | 年年 | 睡眠 | 3 | | 160 | xxx | 本地主机:58811 | 年年 | 睡眠 | 1 | | 161 | xxx | 本地主机:58812 | 年年 | 睡眠 | 1 | ... | 255 | xxx | 本地主机:58906 | 年年 | 睡眠 | 0 | | 256 | xxx | 本地主机:58907 | 年年 | 睡眠 | 0 |
3) 导入失败的原因是:
引起:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:连接太多
我没有找到放置在 solrconfig.xml 中的参数来解决这个问题。顺便说一句,SOLR 版本是 1.3。
非常感谢!
PS只是更多信息:在我看到的日志中:
信息:使用 URL 为实体 abc 创建连接:jdbc:mysql://10.0.2.2/xyz 信息:getConnection() 花费的时间:9
这会重复数百次,直到达到我的本地最大连接数限制(151)并出错。我不知道为什么 SOLR 为每个实体打开一个新连接。我希望这是可以修复的,因为它看起来不像是正确的行为。有谁知道升级到 1.4 或 4.0 是否可以解决这个问题?
再次感谢!
PPS我也会添加一个猜测。它只为每个实体或子实体打开一个连接:我拥有的结构是一个巨型实体和 160 多个子实体。并且http://mail-archives.apache.org/mod_mbox/lucene-solr-user/201205.mbox/%3CA1EB2532250E8945BC3E1FA3AE836F6BE1118F18@adonia.local.uship.com%3E说 solr 有一个错误......如果有人知道修复其他然后升级,请告诉。