Elasticsearch 瞬态动态集群设置

示例

如果您需要在集群启动后动态应用设置,并且实际上可以动态设置,那么可以使用_cluster/settingsAPI进行设置。

瞬态设置是可以应用的两种群集范围设置之一。瞬态设置将无法在整个群集重新启动后幸存。

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

不是用于设置索引级别设置的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设置)。