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, что означает, что таймаут никогда не будет достигнут.
Тело запроса
-
leader_index - (Обязательный, строка) Имя индекса в кластере лидера, за которым следует следить.
-
remote_cluster - (Обязательный, строка) Удаленный кластер, содержащий индекс лидера.
-
data_stream_name - (Необязательный, строка) Если индекс лидера является частью потока данных, имя, на которое должен быть переименован локальный поток данных для индекса, за которым следует следить. Например, запрос:
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 - (значение времени) Максимальное время ожидания новых операций в удаленном кластере, когда индекс фолловера синхронизирован с индексом лидера. По истечении таймаута запрос на получение операций вернется фолловеру, чтобы он мог обновить некоторые статистические данные. Затем фолловером будет немедленно предпринята попытка чтения из лидера.
Значения по умолчанию
Следующий вывод из API follow info описывает все значения по умолчанию для описанных выше параметров запроса на follow индекса:
{
"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
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/ccr-put-follow.html