【发布时间】:2018-12-19 22:55:08
【问题描述】:
我正在编写一个应用程序,我们通过调用 Azure 搜索 API 与一个元素的批次同步更新我们的数据(如 this answer 中所述)。作为备份,我们有一个每小时运行一次的search indexer。这样,如果通过 API 更新索引失败或者我们忘记在代码中触发它,更改最终将同步到搜索索引。
我的问题是:搜索索引器是否有可能像下面的场景那样覆盖 API 更新?
- 搜索索引器从数据库中复制一行
- 应用程序更新数据库中的同一行,然后通过 API 调用将其同步到搜索索引
- 搜索索引器根据数据的过期副本更新索引中的文档
【问题讨论】:
-
您的“搜索索引器”是否是自定义任务,它通过 Azure 搜索 API 获取并发送记录?
-
搜索索引器是一种特定于 Azure 的机制,用于检测数据库更改并更新索引。它不是我的应用程序的一部分。我刚刚用docs 的链接更新了问题,以使其更清晰
-
虽然我没有具体的知识,但我很确定这是可能的。为了避免这个问题,Azure 需要同时锁定索引数据和数据库数据,然后在释放锁定之前更新索引。该系统不太可能以这种方式实施。分布式锁非常脆弱。
标签: c# azure azure-cognitive-search