创建跟随者 API
编辑创建跟随者 API
编辑创建跨集群复制跟随者索引。
请求
编辑resp = client.ccr.follow( index="<follower_index>", wait_for_active_shards="1", remote_cluster="<remote_cluster>", leader_index="<leader_index>", ) print(resp)
const response = await client.ccr.follow({ index: "<follower_index>", wait_for_active_shards: 1, remote_cluster: "<remote_cluster>", leader_index: "<leader_index>", }); console.log(response);
PUT /<follower_index>/_ccr/follow?wait_for_active_shards=1 { "remote_cluster" : "<remote_cluster>", "leader_index" : "<leader_index>" }
先决条件
编辑- 如果启用了 Elasticsearch 安全功能,则您必须拥有跟随者索引的
write
、monitor
和manage_follow_index
索引权限。您必须拥有领导者索引的read
和monitor
索引权限。您还必须拥有包含跟随者索引的集群的manage_ccr
集群权限。有关更多信息,请参阅安全权限。
描述
编辑此 API 创建一个新的跟随者索引,该索引被配置为跟随引用的领导者索引。当此 API 返回时,跟随者索引存在,并且跨集群复制开始将操作从领导者索引复制到跟随者索引。
路径参数
编辑-
<follower_index>
- (必需,字符串)跟随者索引的名称。
查询参数
编辑-
wait_for_active_shards
- (可选,整数)指定在响应之前要等待处于活动状态的分片数量。默认设置为不等待任何分片处于活动状态。必须先从领导者索引还原分片,然后才能处于活动状态。还原跟随者分片需要将所有远程 Lucene 段文件传输到跟随者索引。
-
master_timeout
- (可选,时间单位)等待主节点的时间段。如果主节点在超时到期之前不可用,则请求失败并返回错误。默认为
30s
。也可以设置为-1
以表示请求永远不应超时。
请求正文
编辑resp = client.ccr.follow( index=".ds-logs-mysql-default_copy-2022-01-01-000001", remote_cluster="remote_cluster", leader_index=".ds-logs-mysql-default-2022-01-01-000001", data_stream_name="logs-mysql-default_copy", ) print(resp)
const response = await client.ccr.follow({ index: ".ds-logs-mysql-default_copy-2022-01-01-000001", remote_cluster: "remote_cluster", leader_index: ".ds-logs-mysql-default-2022-01-01-000001", data_stream_name: "logs-mysql-default_copy", }); console.log(response);
PUT /.ds-logs-mysql-default_copy-2022-01-01-000001/_ccr/follow { "remote_cluster" : "remote_cluster", "leader_index" : ".ds-logs-mysql-default-2022-01-01-000001", "data_stream_name": "logs-mysql-default_copy" }
将领导者索引 .ds-logs-mysql-default-2022-01-01-000001
复制到跟随者索引 .ds-logs-mysql-default_copy-2022-01-01-000001
中,并将使用数据流 logs-mysql-default_copy
进行复制,而不是原始领导者数据流名称 logs-mysql-default
。
-
settings
- (对象)要从领导者索引覆盖的设置。请注意,某些设置无法覆盖(例如,
index.number_of_shards
)。
-
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.follow( index="follower_index", wait_for_active_shards="1", remote_cluster="remote_cluster", leader_index="leader_index", settings={ "index.number_of_replicas": 0 }, 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.follow({ index: "follower_index", wait_for_active_shards: 1, remote_cluster: "remote_cluster", leader_index: "leader_index", settings: { "index.number_of_replicas": 0, }, 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);
PUT /follower_index/_ccr/follow?wait_for_active_shards=1 { "remote_cluster" : "remote_cluster", "leader_index" : "leader_index", "settings": { "index.number_of_replicas": 0 }, "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 返回以下结果
{ "follow_index_created" : true, "follow_index_shards_acked" : true, "index_following_started" : true }