Cluster Update Settings

原文链接 : https://www.elastic.co/guide/en/elasticsearch/reference/5.0/cluster-update-settings.html

译文链接 : http://www.apache.wiki/display/Elasticsearch/Cluster+Update+Settings

贡献者 : 那伊抹微笑

可以更新集群范围中指定的配置。更新的配置既可以是永久的(需要重启集群),也可以是瞬时的(不需要重启集群)。下面是一些示例 :

  1. curl -XPUT localhost:9200/_cluster/settings -d '{
  2. "persistent" : {
  3. "discovery.zen.minimum_master_nodes" : 2
  4. }
  5. }'

或者 :

  1. curl -XPUT localhost:9200/_cluster/settings -d '{
  2. "transient" : {
  3. "discovery.zen.minimum_master_nodes" : 2
  4. }
  5. }'

该集群响应了更新的配置。所以最后一个示例的响应将是 :

  1. {
  2. "persistent" : {},
  3. "transient" : {
  4. "discovery.zen.minimum_master_nodes" : "2"
  5. }
  6. }'

可以通过分配一个 null 值来重新设置永久的或者瞬时的配置。如果瞬时的配置被重置了,如果可用的话永久的配置会生效。否则,Elasticsearch 将回滚到定义在配置文件中的配置,如果不存在,会应用默认值,下面是一个示例 :

  1. curl -XPUT localhost:9200/_cluster/settings -d '{
  2. "transient" : {
  3. "discovery.zen.minimum_master_nodes" : null
  4. }
  5. }'

重置配置不会包含集群的响应。所以最后一个例子将会响应 :

  1. {
  2. "persistent" : {},
  3. "transient" : {}
  4. }

配置也可以使用简单的通配符来重置。例如动态的重启所有 discovery.zen,可以使用前缀 :

  1. curl -XPUT localhost:9200/_cluster/settings -d '{
  2. "transient" : {
  3. "discovery.zen.*" : null
  4. }
  5. }'

集群范围内的配置可以是使用下列方式返回 :

  1. curl -XGET localhost:9200/_cluster/settings

Precedence of settings(优先级设置)

瞬时的集群配置优先级大于永久的集群配置,优先级的配置可以在elasticsearch.yml 配置文件中配置。

由于这个原因,仅对于本地配置来说使用 **elasticsearch.yml** 文件,和用 settings API 来设置所有集群范围内的配置是更好的。