【问题标题】:Better Elasticsearch client to connect AWS Elasticsearch from JAVA Spring-boot更好的 Elasticsearch 客户端从 JAVA Spring-boot 连接 AWS Elasticsearch
【发布时间】:2020-04-03 13:35:29
【问题描述】:

我是Spring-boot 的新成员。我需要查询AWS Elasticsearch。端点如下所示

https://vpc-xxxxxx.es.amazonaws.com

我不确定哪个是更好的客户选择,因为有多种选择。我检查了spring-boot-starter-data-elasticsearchorg.elasticsearch.client。看起来客户端正在使用集群节点(9300)的端口。由于我使用的是 AWS ES,因此我无权访问节点的端口。这里使用的端口是443。请推荐我更好的支持 AWS ES 服务的 ES 客户端。

【问题讨论】:

  • 你找到解决办法了吗?

标签: java spring spring-boot elasticsearch


【解决方案1】:

由于您使用的是 9300 端口,这表明您正在尝试将 TransportClient 远程连接到 Elasticsearch 集群

据官方ES doc

在 7.0.0 中已弃用。不推荐使用 TransportClient 以支持 Java 高级 REST 客户端,将在 Elasticsearch 中删除 8.0.

而且即使按照这个blog,未来高层客户端也终将取代传输客户端。

所以,如果你正在开发一个新的应用程序,最好使用 Java High Level REST Client

现在,您已经获得了端点,您现在可以使用 HTTP 协议与 Elasticsearch 进行通信了。

您将能够看到集群信息

您现在可以轻松创建索引,在其中索引数据,删除索引等。

例如。在下图中,我创建了一个索引customer

  • 要了解更多关于如何使用 Java 高级 REST 客户端和 Spring Boot 与 AWS Elasticsearch 对话,可以参考article

也可以参考this answer

【讨论】:

  • @rmn.nish 你有没有机会仔细阅读我的回答,期待得到你的反馈,如果有帮助,请不要忘记点赞并接受:) –
  • 您如何在 AWS elasticsearch 实例中授权/验证您的请求?在博客中它未经任何授权显示,知道如何实现吗?
【解决方案2】:

端口 9300 表明您正在尝试通过传输连接。这是连接到弹性搜索 deprecated from v7 的一种方式。您想使用通过 http 调用进行通信的 rest (http) 客户端。 这是现在与 elasticsearch 通信的推荐方式。出于性能原因,过去推荐使用传输,但现在不再推荐。

您没有提及您的弹性版本,但一种选择是使用high level java rest client

【讨论】:

    猜你喜欢
    • 2020-02-08
    • 2023-02-07
    • 2017-01-02
    • 2020-10-14
    • 2017-12-21
    • 2017-05-07
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多