重建索引,零停机时间

时间:2017-03-08 12:17:44

标签: elasticsearch nest

目前正在开展工作并需要一些帮助。我将从sql数据库填充弹性索引。将从sql数据库初始完全重新索引,然后将有夜间作业,将更新/删除/插入更新。

如果发生重大故障,我可能需要完全重新索引。理想情况下,我希望零停机时间。我确实找到了一些关于创建别名等的文章,但是这看起来是对字段映射的更多更新。我的情况是来自我的源数据库的数据的完全重新索引。我可以将数据推送到弹性和弹性只会更新现有索引,因为ID将是相同的吗?或者我还需要做其他事情吗?

此致

伊斯梅尔

1 个答案:

答案 0 :(得分:2)

对于零停机时间,您可以创建新索引,从数据库填充它,并使用别名从旧索引切换到新索引。步骤进行:

  1. 将主索引称为main_index_1(或任何您喜欢的内容)
  2. 为该索引创建一个名为main_index的别名

    curl -XPUT 'localhost:9200/main_index_1/_alias/main_index?pretty

  3. 将应用程序设置为指向此别名

  4. 创建一个名为main_index_2的新索引并将其从数据库中索引
  5. 将别名切换为指向新索引

    curl -XPOST 'localhost:9200/_aliases?pretty' -H 'Content-Type: application/json' -d { "actions": [ { "remove": { "index": "main_index_1", "alias": "main_index" }}, { "add": { "index": "main_index_2", "alias": "main_index" }} ] }