【问题标题】:Spring Data Elasticsearch automatically reconnectSpring Data Elasticsearch 自动重新连接
【发布时间】:2018-11-21 13:41:39
【问题描述】:

我有一个 Spring Boot 应用程序,我使用 ElasticsearchTemplate 连接到我的 ElasticSearch。但是,当它起作用并且我关闭 Elasticsearch 时,每次我使用 ElasticTemplate 方法时,我都会得到一个 org.elasticsearch.client.transport.NoNodeAvailableException。没关系,因为 ElasticSearch 不工作。

但是,当 ElasticSearch 恢复正常时,我仍然会收到 org.elasticsearch.client.transport.NoNodeAvailableException,就好像这不是在尝试重新连接,但一旦失去连接,我需要重新启动整个应用程序。

如何解决这个问题?有没有办法让它在 ES 关闭后尝试重新连接到 ealsticSearch ?

【问题讨论】:

    标签: elasticsearch spring-data-elasticsearch


    【解决方案1】:

    TransportClient 每 5 秒发送一次心跳信号,以验证 节点是活动的,如果不是,则删除它。

    启用嗅探后,客户端将连接到新发现的节点或再次出现的旧节点。

    因此,将 TransportClient 设置中的“client.transport.sniff”属性设置为 true 应该会有所帮助。见https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.5/transport-client.html

    顺便说一句:考虑切换到 rest 客户端,因为传输客户端的使用会阻止您升级到未来的 elasticsearch 版本 (https://www.elastic.co/blog/state-of-the-official-elasticsearch-java-clients)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 2014-05-06
      • 2015-11-06
      • 2019-04-17
      • 2018-11-27
      • 1970-01-01
      相关资源
      最近更新 更多