栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Elasticsearch是否复制其他系统数据?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Elasticsearch是否复制其他系统数据?

在跨多个数据存储进行搜索时,您已经列出了两个主要选项,即在一个中央数据存储中进行搜索(选项1)或在所有数据存储中进行搜索并汇总结果(选项2)。

尽管选项#2有两个主要缺点,但这两个选项都可以使用:

  1. 为了将搜索“分支”到多个数据存储并汇总您返回的结果,将需要在应用程序中开发大量逻辑。
  2. 每个数据存储的响应时间可能有所不同,因此,您必须等待最慢的数据存储响应才能向用户显示搜索结果(除非您通过使用不同的异步技术(例如Ajax)来规避此问题,websocket等)

如果您想提供更好和更可靠的搜索体验,则选项1无疑会赢得我的投票(实际上,我大部分时间都采用这种方式)。正确地说,此选项的主要缺点是您需要使Elasticsearch与其他主数据存储区中的更改保持同步。

由于您的其他数据存储将是关系数据库,因此您有几种不同的选择可以使它们与Elasticsearch保持同步,即:

  • 使用Logstash JDBC输入
  • 使用JDBC导入器 工具

前两个选项效果很好,但有一个主要缺点,即它们不捕获表上的DELETE,它们仅捕获INSERT和UPDATE。这意味着,如果您曾经删除用户,帐户等,则将无法得知必须删除Elasticsearch中的相应文档。当然,除非您决定在每个导入会话之前删除Elasticsearch索引。

为了减轻这种情况,您可以使用另一个基于MySQL binlog的工具,从而可以捕获每个事件。用Go

语言编写了一种,用Java语言编写了一种,用Python 语言编写了一种。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/383895.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号