瞬态动态群集设置

如果你需要在群集启动后动态应用设置,并且实际上可以动态设置,则可以使用 _cluster/settings API 进行设置。

瞬态设置是可以应用的两种群集范围设置之一。瞬态设置无法在完整群集重启后继续存在。

注意:并非所有设置都可以动态应用。例如,无法动态重命名群集的名称。大多数节点级别的设置也不能动态设置(因为它们不能单独定位)。

不是用于设置索引级设置的 API。你可以告诉该设置是索引级别设置,因为它应该以 index. 开头。名称以 indices. 形式的设置群集范围的设置,因为它们适用于所有索引。

POST /_cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": "none"
  }
}

警告 :在 Elasticsearch 1.x 和 2.x 中,如果没有完全重新启动群集,则无法取消设置瞬态设置。

幸运的是,这已在 Elasticsearch 5.x 中得到改进,你现在可以通过将其设置为 null 来删除设置:

POST /_cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": null
  }
}

未设置的设置将返回其默认值或任何以较低优先级定义的值(例如,persistent 设置)。