【发布时间】:2019-01-05 06:03:37
【问题描述】:
我正在尝试设计一个流程,以零读取停机时间重新索引 Elasticsearch 索引,拒绝写入尝试,直到流程完成。
给定一个原始索引和一个指向它的别名,当前流程如下:
- 创建暂存索引
- 将原始索引设为只读
- 将数据从原始索引复制到暂存索引
- 将暂存索引设为只读
- 更新别名以指向暂存索引
- 重新创建原始索引
- 将数据从暂存索引复制到原始索引
- 更新别名以指向原始索引
问题是,通过关闭索引或使用index.blocks.read_only=true 将其设为只读,我无法更新其别名。
将索引设为只读对于确保尝试写入数据的任何人都会收到错误并自行处理重试非常重要。
更新别名对于确保任何尝试读取数据的人都能毫无问题地获取数据非常重要。
我怎样才能做到这一点?
【问题讨论】:
-
请注意,这个问题与大多数弹性搜索零停机时间问题不同,因为我要求写入将失败而不是丢失。另外,这更具体:我想知道如何禁止数据写入但允许元数据写入。
标签: elasticsearch