【问题标题】:Intermittent connection timeouts to Solr server using SolrNet使用 SolrNet 到 Solr 服务器的间歇性连接超时
【发布时间】:2012-01-05 10:39:19
【问题描述】:

我有一个生产网络服务器托管搜索,另一台机器托管 Solr 搜索服务器(在同一个房间的子网上,所以没有网络问题)。 90% 以上的情况一切正常,但我始终收到少量 The operation has timed out 错误。

我已将 SolrNet 初始化中的超时时间增加到 30 秒 (!)

SolrNet.Startup.Init<SolrDataObject>(
    new SolrNet.Impl.SolrConnection(
        System.Configuration.ConfigurationManager.AppSettings["URL"]
    ) {Timeout = 30000}
);

...但发生的一切是我开始收到这条消息,而不是我之前看到的Unable to connect to the remote server。似乎对超时错误的数量没有影响。

我可以在 any 日志中看到 nothing(相信我,我已经看过了!)并且显然我的配置是正确的,因为它在大多数情况下都有效。任何人都知道如何找到有关此问题的更多信息?

编辑:

我现在已将 HttpRequest 连接数从 2 个增加到“大量”(我看到最多 10 个连接) - 但这对这个问题没有明显的影响。

防火墙设置为允许两台机器之间的任何连接。

我们还用我们的服务器主机检查了硬件,据他们说,连接没有问题。

编辑 2:

我们仍然看到这个问题。

我们现在正在记录超时时间,它们大多刚刚超过 30 秒 - 这是 SolrNet 层的超时时间;不过,有些是 20 秒——这是 Tomcat 默认的超时时间——这表明它是机器之间的实际连接。

但不确定从哪里开始 - 它们位于 VLAN 上,我们专门使用 VLAN 地址 - ping 的响应时间总是

【问题讨论】:

  • 你的提交/优化策略是什么?
  • 希望这能回答您的问题:我们每 15 分钟执行一次 dataimporthandler delta;并在一夜之间完全进口。但我不做任何优化。我现在要去读一读……你有什么建议?
  • 嗯,已经阅读,并且刚刚添加了一个预定的更新?optimize=true 在完全导入后的每晚...但是TBH 我不相信优化会做很多考虑到超时超过 30 秒,通常会在不到一秒的时间内返回。

标签: solr solrnet


【解决方案1】:

没有更多信息,我只能猜测几个可能的原因:

【讨论】:

  • 我没有复制示例查询字符串,因为它很大,有很多 FQ 和很多 Facet.Queries。不过,QTime 下降了 100-200 秒。我将行数设置为 20,因此不会返回大量文档。感谢您的链接。会检查他们。
  • 我有兴趣更改 ServicePoint.ConnectionLimit - 但不确定使用 SolrNet 的最佳方法?把它放在最上面:System.Net.ServicePointManager.DefaultConnectionLimit = 200; SolrNet.Startup.Init(new SolrNet.Impl.SolrConnection(System.Configuration.ConfigurationManager.AppSettings["URL"]) { Timeout = 30000 }); ?
  • @IanGrainger 是的,或者您可以在 web.config 中设置它。
  • 好的,我尝试使用 web.config 将限制设置为 200,但查看 Web 服务器带有 CurrPorts.exe 的机器似乎仍然只有 2 个连接到我的搜索服务器(我们在经典模式下使用 IIS) - 所以这很可能是问题所在!我不需要重新启动 IIS 什么的,对吗?
  • 很奇怪。无论此设置如何,我们的其他服务器都可以创建超过 2 个连接,但不能创建这个...
【解决方案2】:

尝试在 .net 中设置。

ServicePointManager.Expect100Continue = false;

或者这个

ServicePointManager.SetTcpKeepAlive(true, 200000, 200000); - 这会向服务器发送请求以保持连接处于活动状态。

【讨论】:

  • 在大量阅读之后——我认为这可能是 Java 的运行方式。我认为它会在回收内存或类似的东西时停止服务请求......不过,下次我对服务器进行更改时,我会调查这些 - 感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 1970-01-01
  • 2011-08-21
  • 2014-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多