【问题标题】:How to Synchronize the DB from Index Using Elasticsearch如何使用 Elasticsearch 从索引同步数据库
【发布时间】:2014-02-21 18:46:18
【问题描述】:

我有一个用例,Elasticsearch 索引和 MySQL 数据库应该保持同步并满足以下条件。

1) 每当我在 Elasticsearch 索引中插入/更新/删除时,它都应该与数据库(MySQL)同步。

2) 这种同步应该立即完成。

3) 对于 Elasticsearch 索引,我可以随时使用任意数量的请求进行插入/更新/删除。

如何使用 Elasticsearch 做到这一点?

谢谢!!

【问题讨论】:

  • 不应该反过来吗?你把数据放到MySql中,然后索引到ES中?
  • 在我的用例中,我有上述一组方法。所以其他方式是不可能的
  • 很遗憾,因为 MySQL 是(几乎)ACID 而 ElasticSearch 不是。确实应该反过来。
  • 你检查了吗 - github.com/elasticsearch/elasticsearch/blob/master/src/main/…,这是一个监听器,一旦索引更新就会被调用,看看你是否可以覆盖 postIndex 方法,然后同步 MySql DB

标签: java mysql elasticsearch elasticsearch-jdbc-river


【解决方案1】:

看看这个 - Listener for ES

所以这本质上是一个监听器,当索引被更新/删除时被调用。所以重写方法 postCreate 、 postIndex 和 postDelete 并相应地更新 MySQl DB

【讨论】:

  • 谢谢你回答 Rocky。让我试试这个
  • 嗨洛基。我们要为此创建任何河流来进行同步吗?
  • AFAIK River 用于流入 ES 的数据,在你的情况下它是相反的,所以我怀疑 River 在这里是否有任何帮助
猜你喜欢
  • 2020-06-09
  • 2015-04-12
  • 2013-06-23
  • 2012-01-26
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多