将 ElasticSearch Transport Client 与 Amazon ElasticSearch Service (AES) 结合使用

Using ElasticSearch Transport Client with Amazon ElasticSearch Service ( AES )

我们计划将 Elasticsearch 集群迁移到 Amazon ElasticSearch Service (AES)。我们当前的代码库使用本机 Java 传输客户端与 ElasticSearch 集群交互,但根据 AES 文档,它不支持 TCP 传输。

The service supports HTTP on port 80, but does not support TCP transport.

想知道几件事:

  1. 想知道是否仍然如此。我问这个是因为 developer guide 版本看起来有点旧,版本 "Developer Guide (API Version 2015-01-01)".

  2. 如果第 1 项的答案是肯定的,那么移植当前逻辑以开始使用 REST API 而不是传输客户端需要什么样的努力。

  3. 本机传输客户端与 REST API 的性能会有显着差异吗?我假设使用本机客户端效率更高。

  1. 对,还是这样

  2. 从传输客户端到 High-Level REST 客户端的迁移应该很简单 as stated in their objectives

  3. 在 OSI 堆栈中,TCP 级别比 HTTP 级别低三级,因此必然会增加开销。它可能可以忽略不计,但您需要对其进行彻底测试以确保。

  4. 没有 4,但我要添加一个:您可能想先阅读此内容:https://code972.com/blog/2017/12/111-why-you-shouldnt-use-aws-elasticsearch-service您应该考虑改用 Elastic Cloud,它功能更强大,比 AES 更灵活且限制更少。