我有一个es_client (java/dropwizard)
应用。它通过纯文本连接与弹性搜索进行良好的通信。
我已按照以下说明进行操作https://github.com/sonian/elasticsearch-jetty https://github.com/sonian/elasticsearch-jetty设置 SSLes client
。
然而当我开始我的es_client
它每 5 秒报告一次以下内容:
INFO [2014-01-08 23:02:14,814] org.elasticsearch.client.transport: [Karolina Dean] failed to get node info for [#transport#-1][inet[localhost/127.0.0.1:9443]], disconnecting...
! org.elasticsearch.transport.NodeDisconnectedException: [][inet[localhost/127.0.0.1:9443]][cluster/nodes/info] disconnected
我该如何解决这个问题?
谢谢,
马切伊
默认情况下,Elasticsearch 的传输层不支持 SSL,因此您必须自己添加。这需要在服务器端和客户端都添加新代码。
幸运的是,Elasticsearch 非常模块化 https://www.found.no/foundation/elasticsearch-internals/在其源代码中,因此只需在配置文件中添加一行就可以轻松地更换传输实现。
不幸的是,Elasticsearch 使用了大量私有字段和方法,这使得很难在不重新实现全部功能或复制/粘贴大量代码的情况下向现有实现中添加新功能。此外,Elasticsearch 还遮蔽了他们的Netty http://netty.io/- 包含并跳过它们不使用的类,这意味着您必须自己包含兼容 Netty 版本中所需的 SSL+helper 类。
已找到,托管 Elasticsearch 提供商 https://www.found.no它使用 Java 传输客户端提供完整的 SSL 支持,使用这个开源插件 https://github.com/foundit/elasticsearch-transport-module,如果您决定自己实现它,您可能可以将其用作灵感。
另一种不同的方法是使用stunnel https://www.stunnel.org/index.html不要关心机器之间的 SSL 特定部分,而不是对 Elasticsearch 本身进行任何操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)