恢复追踪者 API

编辑

恢复一个跨集群复制追踪者索引。

请求

编辑
resp = client.ccr.resume_follow(
    index="<follower_index>",
)
print(resp)
const response = await client.ccr.resumeFollow({
  index: "<follower_index>",
});
console.log(response);
POST /<follower_index>/_ccr/resume_follow
{
}

先决条件

编辑
  • 如果启用了 Elasticsearch 安全功能,你必须拥有追踪者索引的 writemonitor 索引权限。你必须拥有领导者索引的 readmonitor 索引权限。你还必须在包含追踪者索引的集群上拥有 manage_ccr 集群权限。有关更多信息,请参阅安全权限

描述

编辑

此 API 恢复一个已暂停的追踪者索引,该索引可能是通过 暂停追踪者 API 显式暂停,或者由于在追踪过程中发生无法重试的执行失败而隐式暂停。当此 API 返回时,追踪者索引将恢复从领导者索引获取操作。

路径参数

编辑
<follower_index>
(必需,字符串)追踪者索引的名称。

查询参数

编辑
master_timeout
(可选,时间单位)等待主节点的时间段。如果主节点在超时到期之前不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1 以表示请求永远不应超时。

请求体

编辑
max_read_request_operation_count
(整数)每次从远程集群读取时要拉取的最大操作数。
max_outstanding_read_requests
(长整型)来自远程集群的未完成读取请求的最大数量。
max_read_request_size
字节值)每次从远程集群拉取一批操作的最大字节大小。
max_write_request_operation_count
(整数)在追踪者上执行的每个批量写入请求的最大操作数。
max_write_request_size
字节值)在追踪者上执行的每个批量写入请求的最大总字节数。
max_outstanding_write_requests
(整数)在追踪者上的未完成写入请求的最大数量。
max_write_buffer_count
(整数)可以排队等待写入的最大操作数。当达到此限制时,将延迟从远程集群读取,直到排队的操作数低于该限制。
max_write_buffer_size
字节值)可以排队等待写入的操作的最大总字节数。当达到此限制时,将延迟从远程集群读取,直到排队的操作的总字节数低于该限制。
max_retry_delay
时间值)在重试异常失败的操作之前要等待的最大时间。重试时采用指数退避策略。
read_poll_timeout
时间值)当追踪者索引与领导者索引同步时,在远程集群上等待新操作的最大时间。当超时时间已过,操作轮询将返回给追踪者,以便它可以更新一些统计信息。然后,追踪者将立即尝试再次从领导者读取。

默认值

编辑

以下来自 follow info API 的输出描述了上述索引跟随请求参数的所有默认值

{
  "follower_indices" : [
    {
      "parameters" : {
        "max_read_request_operation_count" : 5120,
        "max_read_request_size" : "32mb",
        "max_outstanding_read_requests" : 12,
        "max_write_request_operation_count" : 5120,
        "max_write_request_size" : "9223372036854775807b",
        "max_outstanding_write_requests" : 9,
        "max_write_buffer_count" : 2147483647,
        "max_write_buffer_size" : "512mb",
        "max_retry_delay" : "500ms",
        "read_poll_timeout" : "1m"
      }
    }
  ]
}

示例

编辑

此示例恢复名为 follower_index 的追踪者索引

resp = client.ccr.resume_follow(
    index="follower_index",
    max_read_request_operation_count=1024,
    max_outstanding_read_requests=16,
    max_read_request_size="1024k",
    max_write_request_operation_count=32768,
    max_write_request_size="16k",
    max_outstanding_write_requests=8,
    max_write_buffer_count=512,
    max_write_buffer_size="512k",
    max_retry_delay="10s",
    read_poll_timeout="30s",
)
print(resp)
const response = await client.ccr.resumeFollow({
  index: "follower_index",
  max_read_request_operation_count: 1024,
  max_outstanding_read_requests: 16,
  max_read_request_size: "1024k",
  max_write_request_operation_count: 32768,
  max_write_request_size: "16k",
  max_outstanding_write_requests: 8,
  max_write_buffer_count: 512,
  max_write_buffer_size: "512k",
  max_retry_delay: "10s",
  read_poll_timeout: "30s",
});
console.log(response);
POST /follower_index/_ccr/resume_follow
{
  "max_read_request_operation_count" : 1024,
  "max_outstanding_read_requests" : 16,
  "max_read_request_size" : "1024k",
  "max_write_request_operation_count" : 32768,
  "max_write_request_size" : "16k",
  "max_outstanding_write_requests" : 8,
  "max_write_buffer_count" : 512,
  "max_write_buffer_size" : "512k",
  "max_retry_delay" : "10s",
  "read_poll_timeout" : "30s"
}

API 返回以下结果

{
  "acknowledged" : true
}