2

我们在 AWS 云中使用 EC2 和 RDS(MySQL)。计划使用 Amazon CloudSearch 进行全文搜索。看起来,每当我们在 MySQL 中添加新行时,我们都需要将数据发送到 CloudSearch。它是一种使 CloudSearch 与 RDS 保持同步的 2 操作。一个向 RDS 添加一行,第二个操作向 CloudSearch 添加相同的数据(当然以不同的格式)。如果有任何其他好的方法,请建议我。

我正在为要添加的 AWS java api 寻找好的材料和工作示例,向 cloudsearch 提供文档,并在 RDS 有更新时更新/删除文档。

谢谢, Baskar.S

4

2 回答 2

4

虽然没有现成的工具来确保 RDS 数据库和 cloudsearch 索引之间的持续同步,但通常通过将您自己的代码添加到更新/删除/创建函数来解决问题。我在基于 ruby​​ 的网络应用程序中使用了这种方法。

假设您有一个类可以处理将新文档添加到索引、更新文档和删除文档。您的方法应如下所示:

  1. 成功创建新行后,调用同样创建新文档的函数。这会在完成时由 cloudsearch 自动索引。

  2. 当您更新行并对也存在于 cloudsearch 索引中的字段进行更改时,请调用更新相应文档的函数。

  3. 同样,对于删除一行,也调用从索引中删除文档的函数。

于 2014-04-20T06:16:17.013 回答
1

Nikhil 已经完成了一半。在您的数据是 CRUD 的代码中,您将类似的调用添加到 cloudsearch,但是这两个语句都需要包装在事务上下文中。这基本上可以确保如果一个失败,他们都会失败。没有这个,你永远无法保证同步。

Spring 和 Rails 等框架提供了此功能,但您尚未说明您使用的是什么。

于 2015-06-30T19:26:25.573 回答