【问题标题】:Solr server unreachable from Java client after OS X sleepOS X 睡眠后,Java 客户端无法访问 Solr 服务器
【发布时间】:2019-07-14 05:59:07
【问题描述】:

我有一个本地开发堆栈在我的 Mac 笔记本电脑上运行良好,以匹配生产站点。一切都在本地主机上的各个端口上运行:

  • Solr 6.5.1
  • Postgres
  • 春季启动

在我关闭笔记本电脑之前一切正常。然后打开笔记本电脑后,依赖于 Solr 的 Java 客户端的 web 应用程序就无法访问 Solr 服务器了:

org.apache.solr.client.solrj.SolrServerException: No live SolrServers available to handle this request
...
Caused by: java.net.UnknownHostException: fe80: nodename nor servname provided, or not known
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[?:1.8.0_162]
    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) ~[?:1.8.0_162]
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[?:1.8.0_162]
    at java.net.InetAddress.getAllByName0(InetAddress.java:1276) ~[?:1.8.0_162]
    at java.net.InetAddress.getAllByName(InetAddress.java:1192) ~[?:1.8.0_162]
    at java.net.InetAddress.getAllByName(InetAddress.java:1126) ~[?:1.8.0_162]
    at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45) ~[httpclient-4.5.6.jar:4.5.6]
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:263) ~[httpclient-4.5.6.jar:4.5.6]

但我仍然可以通过 curl 或 Web 界面在 localhost 手动查询 Solr 服务器,即使完全相同的查询也可以正常工作。无论如何,与 postgres 的连接总是很好。只是 Java 客户端与 solr 的连接失败。

此问题状态持续存在:

  • 停止和启动 Spring Boot
  • 停止和启动 Solr
  • 重启IDE
  • 通过命令行启动网站
  • 通过 IDE 启动网站
  • 通过 ifconfig ... down/up 循环所有网络接口
  • 以上任意组合

恢复该连接的唯一方法是重新启动我的机器。多年来,这个问题在几台笔记本电脑和 OS X 版本中一直存在,但目前我使用的是 10.13.6 high sierra。

我的问题:

  1. 是否有防止此问题发生的修复程序
  2. 是否至少有一种更快的方法来恢复连接而无需重新启动机器

【问题讨论】:

    标签: java macos spring-boot solr network-programming


    【解决方案1】:

    这篇博文解决了我的问题https://thoeni.io/post/macos-sierra-java/

    从本质上讲,Java 在某些情况下难以解析本地主机名似乎存在“主机”问题(不能让双关语消失!),而这些问题都可以通过这个简单的方法解决修复:

    1. 在您的终端中键入hostname 命令以确定您的主机名。假设答案是 YOUR-HOSTNAME。

    2. 在您的/etc/hosts 中添加或修改这些条目:

    127.0.0.1 localhost YOUR-HOSTNAME ::1 localhost YOUR-HOSTNAME

    【讨论】:

      猜你喜欢
      • 2013-12-27
      • 2021-01-25
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多