我有一个用例,后端存储是S3,我们希望通过弹性搜索来为搜索提供动力。一种选择是同时更新S3和索引。
我看到的大多数用例都是异步更新索引的。同步更新的一个明显缺点是在S3更新成功但索引更新失败时处理失败情况。
如果延迟不是问题,那么同步更新有什么意义呢?
发布于 2017-07-27 14:22:32
如果您首先索引,然后存储失败,那么您需要删除索引文档(否则,有人将能够在搜索中找到它,当它不存在时,可能会得到错误的印象)。如果存储故障相对较少,那么它可能会得到回报,但您需要找到它。
另一方面,如果您存储和索引的对象是并行处理的,那么您实际上得到了相同的效果:当一个对象被存储时,另一个正在被索引,同时仍然确保一个对象不会被搜索,除非它被存储。这样,就不需要回滚索引上所做的任何操作。
https://stackoverflow.com/questions/45353401
复制相似问题