简体   繁体   English

弹性搜索API与Spring数据与Logstash

[英]Elastic search API Vs Spring data Vs logstash

I am planing to use elastic search for our dashboard using spring boot based rest services. 我计划使用基于Spring Boot的休息服务对我们的仪表板进行弹性搜索。 After research i see top 3 options 经过研究,我看到了前3个选项

Option A: 选项A:

  1. Use Elastic Search Java API ( from comment looks like going to go away) 使用Elastic Search Java API (从注释中消失)
  2. Use Elastic Search Java Rest Client 使用Elastic Search Java Rest客户端
  3. Use spring-data-elasticsearch ( planing to use es 5.6 but challenging for latest es 6 as I don't see it's supports right now) 使用spring-data-elasticsearch (计划使用es 5.6,但对于最新的es 6来说颇具挑战性,因为我现在看不到它的支持)

Option B: 选项B:

Or shall I use logstash approach to Sync data between postgressql and elastic search using logstash ? 还是应该使用logstash方法在postgressql和使用logstash的弹性搜索之间同步数据?

Which one among them will be long term approach to get near real time data from ES in high load scenario ?? 在高负载情况下,其中哪一种是从ES获得接近实时数据的长期方法?

Usecase: I need to save some data from postgresql table to elastic search for my dashboard (near real time ) 用例:我需要从postgresql表中保存一些数据以弹性搜索我的仪表板(接近实时)

Update is frequent for both tables and es to maintain current state 两个表和es都经常更新,以保持当前状态

Load is going to increase in couple of week 负载将在几周内增加

The options you listed, in essence, are: should you go with a ready to use solution (logstash) or should you implement your own. 从本质上讲,列出的选项是:应该使用现成的解决方案(logstash),还是应该实现自己的解决方案。

Try logstash first to see if it works for you - it'll take less time than implementing your own solution, and you can get working solution in minutes (if it's not hundreds of tables) 首先尝试使用logstash看看它是否对您有用-比实施自己的解决方案所需的时间更少,而且您可以在数分钟内获得可行的解决方案(如果不是数百张表)

If you want near-real time, then you need to figure out if it allows you to: 如果要近乎实时,则需要弄清楚它是否允许您:

  • handle incremental updates, ie if its 'tracking_column' configuration will work for your data structure and it will only load updated records in each run, not the whole table. 处理增量更新,即,如果其“ tracking_column”配置适用于您的数据结构,并且仅在每次运行中加载更新的记录,而不是整个表。
  • run it at the desired frequency 以所需的频率运行
  • and in general, satisfies your latency requirements 总的来说,可以满足您的延迟要求

If you decide to go with your own solution, keep in mind that spring-data-elasticsearch is a higher level wrapper for underlying elasticsearch client. 如果您决定采用自己的解决方案,请记住,spring-data-elasticsearch是底层Elasticsearch客户端的高级包装。 If there are latency goals, then working on the lower level (elasticsearch clients) may give you better control and more options to tune the pipeline. 如果有延迟目标,那么在较低级别上工作(elasticsearch客户端)可能会为您提供更好的控制和更多选项来调整管道。

Otherwise, the client choice will not matter that much as data feed features (volume/update frequency) and db/es cluster configuration. 否则,客户端的选择与数据馈送功能(卷/更新频率)和db / es集群配置无关紧要。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM