【问题标题】:Elastic search API Vs Spring data Vs logstash弹性搜索 API Vs Spring 数据 Vs Logstash
【发布时间】:2018-05-07 17:31:34
【问题描述】:

我计划使用基于 Spring Boot 的休息服务对我们的仪表板使用弹性搜索。经过研究,我看到了前 3 个选项

选项 A:

  1. 使用Elastic Search Java API(从评论看来要消失了)
  2. 使用弹性Search Java Rest Client
  3. 使用spring-data-elasticsearch(计划使用 es 5.6,但对最新的 es 6 具有挑战性,因为我现在看不到它的支持)

选项 B:

或者我应该使用logstash方法来 使用 logstash 在 postgressql 和弹性搜索之间同步数据?

其中哪一种将是在高负载情况下从 ES 获取近乎实时数据的长期方法??

用例:我需要将一些数据从 postgresql 表保存到我的仪表板的弹性搜索中(接近实时)

table 和 es 都经常更新 保持当前状态

几周后负载会增加

【问题讨论】:

  • 这是一个有点奇怪的选项列表。 3 和 4 是使用 1 或 2 的更高级别的库/框架。因此,真正的问题是什么对您更方便,它们公开什么样的配置,以及您是否可以根据您的要求对其进行调整。需要注意的一点是 Java API 客户端 is doomed, and the plan is that everyone will use REST client going forward
  • 抱歉更新了问题.. 我打算使用 spring-data-elastic 但想确定它是否是一个正确的选择,因为每次我需要确保保存到 es 或者我应该使用logstash 同步数据?

标签: spring postgresql elasticsearch spring-boot spring-data-elasticsearch


【解决方案1】:

您列出的选项实质上是:您应该使用现成的解决方案(logstash)还是实施自己的解决方案。

先试试logstash,看看它是否适合你——它比实施你自己的解决方案花费的时间更少,而且你可以在几分钟内得到有效的解决方案(如果不是数百个表)

如果您想要接近实时,那么您需要弄清楚它是否允许您:

  • 处理增量更新,即如果它的“tracking_column”配置适用于您的数据结构,并且它只会在每次运行时加载更新的记录,而不是整个表。
  • 以所需的频率运行它
  • 总体上满足您的延迟要求

如果您决定使用自己的解决方案,请记住 spring-data-elasticsearch 是底层 elasticsearch 客户端的更高级别包装器。如果有延迟目标,那么在较低级别(elasticsearch 客户端)上工作可能会给您更好的控制和更多选项来调整管道。

否则,客户端的选择与数据馈送功能(容量/更新频率)和 db/es 集群配置无关。

【讨论】:

    猜你喜欢
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2019-10-16
    • 2014-03-26
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    相关资源
    最近更新 更多