投票配置排除 API
编辑投票配置排除 API
编辑从投票配置排除列表中添加或删除符合主节点条件的节点。
请求
编辑POST /_cluster/voting_config_exclusions?node_names=<node_names>
POST /_cluster/voting_config_exclusions?node_ids=<node_ids>
DELETE /_cluster/voting_config_exclusions
描述
编辑默认情况下,如果集群中有三个以上符合主节点条件的节点,并且您一次删除的符合主节点条件的节点少于一半,则投票配置会自动缩小。
如果您希望将投票配置缩小到包含少于三个节点,或者一次删除集群中一半或更多的符合主节点条件的节点,请使用此 API 手动从投票配置中删除即将离开的节点。该 API 会将每个指定节点的条目添加到集群的投票配置排除列表中。然后,它会等待集群重新配置其投票配置以排除指定的节点。
在正常操作中,集群不应有任何投票配置排除项。一旦被排除的节点停止,请使用 DELETE /_cluster/voting_config_exclusions
清除投票配置排除项。此 API 会等待节点完全从集群中删除后才会返回。如果您的集群有不再打算删除的节点的投票配置排除项,请使用 DELETE /_cluster/voting_config_exclusions?wait_for_removal=false
清除投票配置排除项,而无需等待节点离开集群。
对 POST /_cluster/voting_config_exclusions
的响应,其 HTTP 状态代码为 200 OK
,保证该节点已从投票配置中删除,并且在调用 DELETE /_cluster/voting_config_exclusions
清除投票配置排除项之前不会恢复。如果对 POST /_cluster/voting_config_exclusions
的调用失败或返回 HTTP 状态代码不是 200 OK
的响应,则该节点可能尚未从投票配置中删除。在这种情况下,您可以安全地重试调用。
仅当您在短时间内从集群中删除至少一半的符合主节点条件的节点时,才需要投票排除。删除不符合主节点条件的节点或删除少于一半的符合主节点条件的节点时,不需要投票排除。
有关更多信息,请参阅删除符合主节点条件的节点。
查询参数
编辑-
node_names
- 要从投票配置中排除的节点的名称的逗号分隔列表。如果指定,则您也不能指定
?node_ids
。仅适用于此 API 的POST
形式。 -
node_ids
- 要从投票配置中排除的节点的持久 ID 的逗号分隔列表。如果指定,则您也不能指定
?node_names
。仅适用于此 API 的POST
形式。 -
timeout
- (可选,时间单位)添加投票配置排除项时,API 会等待指定节点从投票配置中排除后再返回。等待的时间段由
?timeout
查询参数指定。如果超时在满足相应条件之前过期,则请求失败并返回错误。默认为30 秒
。仅适用于此 API 的POST
形式。 -
master_timeout
- (可选,时间单位)定义在尝试将请求路由到集群中当前主节点时要等待的时间。默认为
30 秒
。适用于此 API 的POST
和DELETE
形式。 -
wait_for_removal
- (可选,布尔值)指定在清除投票配置排除列表之前是否等待所有被排除的节点从集群中删除。默认为
true
,这意味着所有被排除的节点必须从集群中删除,此 API 才会执行任何操作。如果设置为false
,则即使某些被排除的节点仍在集群中,也会清除投票配置排除列表。仅适用于此 API 的DELETE
形式。
示例
编辑将名为 nodeName1
和 nodeName2
的节点添加到投票配置排除列表中
resp = client.cluster.post_voting_config_exclusions( node_names="nodeName1,nodeName2", ) print(resp)
const response = await client.cluster.postVotingConfigExclusions({ node_names: "nodeName1,nodeName2", }); console.log(response);
POST /_cluster/voting_config_exclusions?node_names=nodeName1,nodeName2
从列表中删除所有排除项
resp = client.cluster.delete_voting_config_exclusions() print(resp)
const response = await client.cluster.deleteVotingConfigExclusions(); console.log(response);
DELETE /_cluster/voting_config_exclusions