我正在尝试设计一个以零读取停机时间重新索引Elasticsearch索引的过程,拒绝写入尝试,直到该过程完成。
给定一个原始索引和一个指向它的别名,当前流程如下:
问题是通过关闭索引或使用index. block使其只读。read_only=true
,我无法更新其别名。
使索引只读对于确保任何尝试写入数据的人都会收到错误并自己处理重试非常重要。
更新别名对于确保任何尝试读取数据的人都能毫无问题地获取数据非常重要。
我怎样才能做到这一点?
所以有一个专门针对这一点的有据可查的选项:
index. block.write
设置为true以禁用对索引的数据写入操作。与read_only不同,此设置不影响元数据。例如,您可以关闭具有写入块的索引,但不能关闭具有read_only块的索引。
出于某种原因,我看到它比更严格的read_only
选项少得多,但它非常适合这里。