我有一个使用 SOLR 4.1 的 SOLR 主机和从机。索引的大小并不大,因此复制大约需要 30 秒(这是完全刷新而不是增量更新)。我遇到的一个大问题是,只要有复制(每天一次),客户端就会出现很多超时错误,并且在 tomcat/solr 端会有很多 ClientAbortException,如下所示:
SEVERE: null:ClientAbortException: java.net.SocketException: Broken pipe
据我了解,当客户端不再收听时会发生此异常。由于客户端存在超时,我猜想某种断开连接正在以某种方式发生?
在我的例子中,客户端和 solr slave 之间有一个负载均衡器。当我查看 JMX GC 日志时,“ConcurrentMarkSweep 收集时间”指标出现了很大的峰值。我猜要么这个 GC 导致一些传入查询排队,要么负载均衡器或 tomcat 有问题?
任何见解将不胜感激。