【问题标题】:timeout exception with solrjsolrj 的超时异常
【发布时间】:2013-01-29 09:42:00
【问题描述】:

我正在使用 solr (v4) - 我偶尔会遇到以下异常:

Timeout occured while waiting response from server at: http://localhost:8983/solr

我假设我可以通过配置文件或通过我在 solr 中的代码更改超时参数(我相信几周前我已经减少了)。除了更改配置/代码中的超时时间(并检查为什么我的代码或 solr 连接需要这么长时间,我还有什么可以解决这个问题的)?

更新: 这似乎发生在我尝试将一些文档提交给 solr(定义明确)的时候 - 但是,其中一些可能已经在 solr 中,我不确定这是否会导致 solr 出现任何问题

编辑: 我在第一次编辑中提到的似乎是这种情况,尽管我并不完全确定。

【问题讨论】:

  • 当我尝试使用数据导入时,通常会发生类似的事情,但在我的情况下它是暂时的......您可以添加更多日志条目并告诉我们您使用的是哪个容器吗?码头还是 tomcat?
  • 我都没有使用 - 我正在使用 solrj 来生成 HttpSolrServer 连接。我会尽快添加有关异常的更多信息。
  • 这里也一样。提交将产生超时。你有关于这个问题的任何消息吗?
  • @Tropper 很抱歉,但那是很久以前的事了 - 你确定这些是新插入,还是你想更新 solr 中的现有对象?
  • 其实我发现了我的问题。我的电话中有一个明确的 commit() 电话。在阅读文档后,我了解到这是一个坏主意,不需要。没有 commit() 调用一切正常。对不起,绒毛...... :-)

标签: solr solrj


【解决方案1】:

您是否正在缓存或池化 HttpClient 或连接?如果是这样,您的客户端和 Solr 服务器之间是否有防火墙?

这可能是长时间运行的连接被防火墙关闭的情况,并且所有使用该连接的后续尝试都会丢弃数据包(导致超时)或返回 RST 数据包。

如果您可以复制它,请尝试在客户端上运行 Wireshark 并查看连接会发生什么。但是如果是防火墙,通常很难复制(需要创建X小时的连接间隙)。

【讨论】:

  • 感谢您的反馈 - 应用程序之间没有防火墙。我可以运行wireshark来确认哪一方正在丢弃数据包,尽管我怀疑它的solr(我知道我需要确认)。
  • 实际上,我错过了'localhost'。如果它们都在本地主机上,那么防火墙不太可能,但 Wireshark 很可能不会看到环回上的流量。实际上,将其中一个部件放在另一台机器上可能更容易排除故障。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 2015-01-28
  • 2015-11-29
  • 2013-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多