将Elasticsearch与Mysql同步的最佳方式

9

我在我的 Spring Web MVC 项目 (spring-data-elasticsearch) 中使用 elasticsearch 来与数据库 (MySQL) 同步。

如果任何新实体将要添加到数据库表中,同时从服务层,我请求将此文档索引到 elasticsearch 中。

数据库表和 elasticsearch 索引都具有相同的数据,在删除和更新操作上,我使用相同的概念,对 elasticsearch 和数据库表执行更改操作,这很好用。

现在我想知道这种方法的 缺点 是什么。

或者是否有更好的方法使我们的 elasticsearch 索引保持最新状态。我使用了 logstash,但删除的实体怎么办?


1
这个答案可能会有所帮助:https://dev59.com/sVsW5IYBdhLWcg3w4qiw#34477639 - Val
1个回答

1
同步索引的缺点是,在创建索引数据时出现错误时,没有重试。
如果在我的位置上,我会创建一个cronjob/batch(触发取决于更新的数据量和更新索引的重要性),并且此任务将具有执行状态和日志记录。
您将清楚地了解自己的索引情况,没有遗漏的数据。
对于索引,您可以使用完整索引模式和更新索引模式(应在表格上添加更新日期)。
索引策略分为两个阶段,您可以选择TWO_PHASES:您需要一个主服务器和从服务器==》在主服务器上执行索引时,从服务器将响应请求,当索引完成后,您可以使用DIRECT_MODE进行同步:删除索引并创建新的索引。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接