VK Docs logo
Помощь
Обновлена 5 декабря 2025 г. в 10:14

Конфигурация репликаторов данных

Документ рассматривает параметры конфигурации репликаторов данных для Tarantool Clusters Federation (TCF).

gateway

Параметры конфигурации Gateway.

gateway.authorization

Доступно с версии 0.9.0.

Параметры Gateway для конфигурации авторизации на HTTP API.

Тип: map

Пример:

gateway:  authorization:    provider: keycloak    provider_params:      url: "https://keycloak.example.com/"      roles:        info: ORDERDB_TCF_INFO        toggle: ORDERDB_TCF_TOGGLE        admin: ORDERDB_TCF_ADMIN      realm: master      client_id: master_client      client_secret_path: /path/to/secret      ssl:        ca_file: "/etc/ssl/certs/keycloak-ca.pem"        cert_file: "/etc/ssl/certs/client.pem"        key_file: "/etc/ssl/private/client-key.pem"  # ...

gateway.authorization.provider

Имя провайдера для авторизации запросов. На текущий момент поддерживается только значение keycloak.

Тип: string

gateway.authorization.provider_params

Поддерживаемые параметры для работы провайдера Keycloak. Тип: map.

  • url – URL сервера Keycloak. Тип: string;
  • ssl – параметры TLS для HTTP API Keycloak. Тип: map. Поддерживаемые параметры:
    • ca_file – путь к файлу корневого сертификата, который используется для проверки подлинности клиента при установке TLS-соединения. Тип: string;
    • cert_file – путь к файлу сертификата сервера, который используется для шифрования соединения между компонентами Gateway и Destination. Тип: string;
    • key_file – путь к файлу закрытого ключа сервера, который соответствует сертификату из параметра gateway.grpc_server.ssl_key_file. Тип: string;
  • client_id – имя сервисного клиента. Тип: string. Параметр доступен начиная с версии 0.11.0;
  • client_secret_path – путь к файлу с секретом клиента. Тип: string. Для повышения безопасности необходимо создать текстовый файл с секретом внутри. Параметр доступен начиная с версии 0.11.0;
  • realm – имя области realm, в которой создан сервисный клиент. Тип: string. Параметр доступен начиная с версии 0.11.0;
  • roles – список с соответствием ролей из Keycloak и правил авторизации для компонента Gateway. Тип: map. Поддерживаемые параметры:
    • info – чтение статусов кластеров и метрик. Дает доступ к HTTP-адресам обработчиков запросов: /tcf/status, /tcf/is_active, /tcf/clusters (TCF-worker) и /api/v1/status (Destination). Значение по умолчанию: TCF_INFO. Тип: string;
    • toggle – управление репликацией. Дает доступ ко всем адресам обработчиков запросов, кроме /api/v1/rebootstrap (Destination). Значение по умолчанию: TCF_TOGGLE. Тип: string;
    • admin – полный доступ ко всем адресам обработчиков запросов, включая /api/v1/rebootstrap. Значение по умолчанию: TCF_ADMIN. Тип: string.

Чтобы настроить клиент сервиса для Gateway:

  1. Создайте конфиденциального клиента с включенным сервис-аккаунтом serviceAccountsEnabled=true. Клиент должен иметь роль toggle или admin.

  2. Добавьте параметры gateway.authorization.provider_params.client_id, gateway.authorization.provider_params.client_secret_path и gateway.authorization.provider_params.realm в конфигурацию Gateway.

    Пример настройки клиента сервиса.

Читайте также про настройку клиента сервиса для Destination.

gateway.grpc_server

Параметры gRPC-сервера, к которому подключается Destination для получения потока транзакций.

Тип: map

Пример:

gateway:  grpc_server:    host: 192.168.64.9    port: 10080  # ...

gateway.grpc_server.host

Адрес, на котором запускается gRPC-сервер.

Тип: string

gateway.grpc_server.port

Порт, на котором gRPC-сервер ожидает входящие соединения.

Тип: string

gateway.grpc_server.ssl_cert_file

Доступно с версии 0.5.0.

Путь к файлу сертификата сервера, который используется для шифрования соединения между компонентами Gateway и Destination.

Тип: string

Пример:

gateway:  # ...  grpc_server:    ssl_cert_file: /path/to/server.crt    ssl_key_file: /path/to/server.key    ssl_ca_file: /path/to/ca.crt

См. также: gateway.grpc_server.ssl_key_file и gateway.grpc_server.ssl_ca_file.

gateway.grpc_server.ssl_key_file

Доступно с версии 0.5.0.

Путь к файлу закрытого ключа сервера, который соответствует сертификату из параметра gateway.grpc_server.ssl_cert_file. Используется для установки защищенного TLS-соединения.

Тип: string

gateway.grpc_server.ssl_ca_file

Доступно с версии 0.5.0.

Путь к файлу корневого сертификата, который используется для проверки подлинности клиента при установке TLS-соединения.

Тип: string

gateway.http_server

Параметры HTTP-сервера. См. также HTTP API репликаторов данных.

Тип: map

Пример:

gateway:  # ...  http_server:    host: 192.168.64.9    port: 10081

gateway.http_server.host

Адрес, на котором запускается HTTP-сервер.

Тип: string

gateway.http_server.port

Порт, на котором HTTP-сервер ожидает входящие соединения.

Тип: string

gateway.http_server.ssl_cert_file

Доступно с версии 0.5.0.

Путь к файлу сертификата сервера, который используется для шифрования соединения между компонентами Gateway и Destination.

Тип: string

Пример:

gateway:  http_server:    host: 0.0.0.0    port: 10081    ssl_cert_file: "/path/to/the/cert/file"    ssl_key_file: "/path/to/the/key/file"    ssl_ca_file: "/path/to/the/ca/file"

См. также: gateway.grpc_server.ssl_key_file и gateway.grpc_server.ssl_ca_file.

gateway.http_server.ssl_key_file

Доступно с версии 0.5.0.

Путь к файлу закрытого ключа сервера, который соответствует сертификату из параметраgateway.grpc_server.ssl_cert_file. Используется для установки защищенного TLS-соединения.

Тип: string

gateway.http_server.ssl_ca_file

Доступно с версии 0.5.0.

Путь к файлу корневого сертификата, который используется для проверки подлинности клиента при установке TLS-соединения.

Тип: string

gateway.replica_type

Тип реплики, в качестве которой Gateway подключается к кластеру.

Возможные значения: anonymous, regular

Тип: string

Пример:

gateway:  # ...  replica_type: anonymous

gateway.max_cpu

Максимальное число ядер, которые может использовать Gateway. По умолчанию Gateway использует все доступные ядра и создает один поток для каждого набора реплик.

Тип: number

gateway.log_level

Уровень логирования.

Возможные значения: fatal, syserror, error, crit, warn, info, verbose, debug

Тип: string

gateway.log_type

Формат логов.

Возможные значения: plain, json

Тип: string

gateway.log_path

Путь к каталогу с файлами логов.

Тип: string

gateway.stream_instances

Параметры экземпляров хранилища кластера, к которым подключается Gateway для получения потока транзакций. См. <instance_params>.

Тип: array

Пример:

gateway:  # ...  stream_instances:    - uri: 192.168.64.9:3302      user: replicator      password: foobar    - uri: 192.168.64.9:3303      user: replicator      password: foobar    # ...

<instance_params>

Параметры подключения экземпляра кластера по протоколу iproto.

Тип: map

<instance_params>.uri

URI для подключения к экземпляру кластера.

Тип: string

<instance_params>.user

Имя пользователя для подключения к экземпляру кластера.

Тип: string

<instance_params>.password

Пароль пользователя, используемого для подключения.

Тип: string

gateway.ssl_opts

Настройки TLS, используемые для подключения к экземплярам кластера. gateway_or_destination>.ssl_opts описывает возможные параметры подключения.

Тип: array

gateway.start_retry_delay

Задержка в миллисекундах перед началом повторной попытки подключения к роутерам для получения служебной информации и формирования соединения.

Тип: number

Значение по умолчанию: 100

gateway.max_retry_delay

Максимальная задержка в миллисекундах перед началом повторной попытки подключения к роутерам для получения служебной информации и формирования соединения.

Тип: number

gateway.retry_attempts

Количество разрешенных попыток повторного подключения к роутерам.

Тип: number

Значение по умолчанию: 10

gateway.metrics_enabled

Включить метрики для Gateway в формате Prometheus. Для получения значений метрик используйте HTTP-endpoint /metrics.

Пример:

gateway:  # ...  metrics_enabled: true

gateway.one_way_replication

Доступен начиная с версии 0.11.0.

Параметр включает режим односторонней репликации для Gateway.

Тип: boolean

Значение по умолчанию: false

gateway.read_snapshot_from_file

Доступен начиная с версии 0.11.0.

Параметр задаёт источник данных для формирования начального снимка данных Tarantool при инициализации или перезапуска с повторной инициализацией (rebootstrap) репликатора Gateway и определяет возможность продолжения первичной загрузки при сбоях.

Поведение при значениях true/false:

  • true – для холодной загрузки данных используется последний файл .snap, что позволяет продолжать чтение снимка данных при неполадках без повторной инициализации;
  • false – для холодной загрузки данных на стороне Tarantool создаётся виртуальный read view. При возникновении неполадок требуется перезапустить процесс холодной загрузки с повторной инициализацией (rebootstrap).

Тип: boolean

Значение по умолчанию: false

Тип: boolean

gateway.metrics_labels

Пользовательские лейблы метрик Prometheus для Gateway. Для получения значений метрик используйте HTTP-endpoint /metrics.

Пример:

gateway:  # ...  metrics_enabled: true  metrics_labels:     custom_label: constant

Тип: map

Значение по умолчанию: {}

gateway.alias

Параметр доступен начиная с версии 0.8.0.

Имя приложения для идентификации конкретного экземпляра Gateway. Используется для отображения метрик конкретного экземпляра в Grafana.

Тип: string

Значение по умолчанию: gateway

gateway.storage

Добавлен в версии 0.11.0.

Параметр требуется для работы с отказоустойчивыми группами Gateway.

Если в конфигурации заданы несколько экземпляров, они обеспечивают отказоустойчивость при получении данных с кластера. Если экземпляр Gateway, который используется сейчас для межкластерной репликации, становится недоступен, прием данных автоматически переключается на резервный экземпляр Gateway из заданной группы экземпляров.

Поддерживаемые параметры:

  • storage – тип хранилища конфигурации, которое используется для хранения состояния кластеров. Тип: string. Возможные параметры: etcd_v2, etcd_v3, config_storage;
  • storage_params – параметры хранилища конфигурации. Возможные параметры:
    • endpoints – массив узлов хранилища конфигурации с возможностью указания нескольких подключений. Тип: array. Возможные параметры:
      • host – адрес узла хранилища состояния кластеров (например, etcd), на который Gateway может выполнять запись. Тип: string;
      • port – порт для подключения к узлу хранилища состояния кластеров. Тип: string;
    • prefix – префикс (путь внутри хранилища состояния кластеров), который используется для размещения записей Gateway. Значение по умолчанию: /tcf. Тип: string;
    • ttl – время жизни записей (TTL) в хранилище состояния кластеров, задаётся в секундах. Должно быть одинаковым для всех экземпляров Gateway в группе. Значение по умолчанию: 30. Тип: number.

Пример:

gateway:  storage: etcd_v2  storage_params:    endpoints:      - host: 192.168.64.10        port: 3013    prefix: /tcf

gateway.heartbeat_interval

Параметр доступен начиная с версии 0.11.0.

Интервал отправки heartbeat-пакетов между Gateway и Destination. Используется для предотвращения разрыва в журналах репликации (XlogGap) и потери данных при масштабировании по Destination, когда отдельные шарды могут долго не получать записи. Heartbeat обновляет vclock даже при отсутствии изменения пользовательских данных и обеспечивает корректный выбор точки репликации после рестарта узла.

Пример:

gateway:  # ...  heartbeat_interval: 100ms

Тип: string

Значение по умолчанию: 1m в формате time.ParseDuration (1s, 5m)

gateway.batch_size

Доступен начиная с версии 0.11.0.

Параметр задаёт максимальное количество сообщений репликаторов, которые Gateway может накопить при получении с Tarantool и обработать одновременно, объединяя несколько сообщений в один gRPC-пакет при отправке на Destination.

Пример:

gateway:  batch_size: 100  # ...

Тип: number

Значение по умолчанию: 0 (выключен)

gateway.batch_timeout

Доступен начиная с версии 0.11.0.

Интервал ожидания, после которого отправляется gRPC-пакет.

Если батчинг включён, сообщения отправляются при достижении размера gateway.batch_size, либо по истечении установленного времени ожидания gateway.batch_timeout.

Пример:

gateway:  batch_size: 10  batch_timeout: 100ms  # ...

Тип: string

Значение по умолчанию: 100ms в формате time.ParseDuration (1s, 5m)

(config-tcf-replicator-gateway-destination_connect_timeout)=

gateway.destination_connect_timeout

Параметр доступен начиная с версии 0.10.0.

Время ожидания подключения всех распределенных экземпляров Destination к Gateway при запуске. Пока не подключены все экземпляры, приём новых данных не начинается.

Пример:

gateway:  destination_connect_timeout: 120s

Тип: number

Значение по умолчанию: 1m в формате time.ParseDuration (1s, 5m)

destination

Параметры конфигурации Destination.

destination.authorization

Доступно с версии 0.9.0.

Параметры Destination для конфигурации авторизации на HTTP API.

Тип: map

Пример:

destination:  authorization:    provider: keycloak    provider_params:      url: "https://keycloak.example.com/"      roles:        info: ORDERDB_TCF_INFO        toggle: ORDERDB_TCF_TOGGLE        admin: ORDERDB_TCF_ADMIN      realm: master      client_id: master_client      client_secret_path: /path/to/secret      ssl:        ca_file: "/etc/ssl/certs/keycloak-ca.pem"        cert_file: "/etc/ssl/certs/client.pem"        key_file: "/etc/ssl/private/client-key.pem"  # ...

destination.authorization.provider

Имя провайдера для авторизации запросов. На текущий момент поддерживается только значение keycloak.

Тип: string

destination.authorization.provider_params

Поддерживаемые параметры для работы провайдера Keycloak. Тип: map.

  • url – URL сервера Keycloak. Тип: string;
  • ssl – параметры TLS для HTTP API Keycloak. Тип: map. Поддерживаемые параметры:
    • ca_file – путь к файлу корневого сертификата, который используется для проверки подлинности клиента при установке TLS-соединения. Тип: string;
    • cert_file – путь к файлу сертификата сервера, который используется для шифрования соединения между компонентами Gateway и Destination. Тип: string;
    • key_file – путь к файлу закрытого ключа сервера, который соответствует сертификату из параметра destination.gateways.ssl_cert_file. Тип: string;
  • client_id – имя сервисного клиента. Тип: string. Параметр доступен начиная с версии 0.11.0;
  • client_secret_path – путь к файлу с секретом клиента. Тип: string. Для повышения безопасности необходимо создать текстовый файл с секретом внутри. Параметр доступен начиная с версии 0.11.0;
  • realm – имя области realm, в которой создан сервисный клиент. Тип: string. Параметр доступен начиная с версии 0.11.0;- roles – список с соответствием ролей из Keycloak и правил авторизации для компонента Destination. Тип: map. Поддерживаемые параметры:
    • info – чтение статусов кластеров и метрик. Дает доступ к HTTP-адресам обработчиков запросов: /tcf/status, /tcf/is_active, /tcf/clusters (TCF-worker) и /api/v1/status (Destination). Значение по умолчанию: TCF_INFO. Тип: string;
    • toggle – управление репликацией. Дает доступ ко всем адресам обработчиков запросов, кроме /api/v1/rebootstrap (Destination). Значение по умолчанию: TCF_TOGGLE. Тип: string;
    • admin – полный доступ ко всем адресам обработчиков запросов, включая /api/v1/rebootstrap. Значение по умолчанию: TCF_ADMIN. Тип: string.
    • ca_file – путь к файлу корневого сертификата, который используется для проверки подлинности клиента при установке TLS-соединения. Тип: string;
    • cert_file – путь к файлу сертификата сервера, который используется для шифрования соединения между компонентами Gateway и Destination. Тип: string;
    • key_file – путь к файлу закрытого ключа сервера, который соответствует сертификату из параметра destination.gateways.ssl_cert_file. Тип: string;
  • roles – список с соответствием ролей из Keycloak и правил авторизации для компонента Destination. Тип: map. Поддерживаемые параметры:
    • info – чтение статусов кластеров и метрик. Дает доступ к HTTP-адресам обработчиков запросов: /tcf/status, /tcf/is_active, /tcf/clusters (TCF-worker) и /api/v1/status (Destination). Значение по умолчанию: TCF_INFO. Тип: string;
    • toggle – управление репликацией. Дает доступ ко всем адресам обработчиков запросов, кроме /api/v1/rebootstrap (Destination). Значение по умолчанию: TCF_TOGGLE. Тип: string;
    • admin – полный доступ ко всем адресам обработчиков запросов, включая /api/v1/rebootstrap. Значение по умолчанию: TCF_ADMIN. Тип: string.

Чтобы настроить клиент сервиса для Destination:

  1. Создайте конфиденциального клиента с включенным сервис-аккаунтом serviceAccountsEnabled=true. Клиент должен иметь роль toggle или admin.

  2. Добавьте параметры destination.authorization.provider_params.client_id, destination.authorization.provider_params.client_secret_path и destination.authorization.provider_params.realm в конфигурацию Destination.

Пример настройки клиента сервиса.

Читайте также про настройку клиента сервиса для Gateway.

destination.gateways

Доступно с версии 0.5.0.

Настройки подключения компонента Destination к компоненту Gateway по gRPC.

Тип: array

Параметр позволяет задать группу из одного или нескольких экземпляров компонента Gateway. Если в конфигурации заданы несколько экземпляров, они обеспечивают отказоустойчивость при получении данных с активного кластера.

Если экземпляр Gateway, который используется сейчас для межкластерной репликации, выходит из строя, передача данных переключается на резервный экземпляр Gateway из заданной группы экземпляров.

Пример:

destination:  gateways:    - host: 192.168.64.9      port: 10080    - host: 192.168.64.10      port: 11080    - host: 192.168.64.11      port: 12080  # ...

destination.gateways.host

Адрес, на котором запущен gRPC-сервер gateway.

Тип: string

destination.gateways.port

Порт для подключения к gRPC-серверу.

Тип: string

destination.gateways.ssl_cert_file

Доступно с версии 0.5.0.

Путь к файлу сертификата сервера, который используется для шифрования соединения между компонентами Gateway и Destination.

Тип: string

Пример:

destination:  gateways:    - host: 192.168.64.9      port: 10080      ssl_cert_file: /path/to/server.crt      ssl_key_file: /path/to/server.key      ssl_ca_file: /path/to/ca.crt    - host: 192.168.64.10      port: 11080      ssl_cert_file: /path/to/server.crt      ssl_key_file: /path/to/server.key      ssl_ca_file: /path/to/ca.crt    - host: 192.168.64.11      port: 12080      ssl_cert_file: /path/to/server.crt      ssl_key_file: /path/to/server.key      ssl_ca_file: /path/to/ca.crt

См. также: destination.gateways.ssl_key_file, destination.gateways.ssl_ca_file, destination.gateways.host и destination.gateways.port.

destination.gateways.ssl_key_file

Доступно с версии 0.5.0.

Путь к файлу закрытого ключа сервера, который соответствует сертификату из параметра destination.gateways.ssl_cert_file. Используется для установки защищенного TLS-соединения.

Тип: string

destination.gateways.ssl_ca_file

Доступно с версии 0.5.0.

Путь к файлу корневого сертификата, который используется для проверки подлинности клиента при установлении TLS-соединения.

Тип: string

destination.gateways.dial_timeout

Доступно с версии 0.9.0.

Ограничение по времени на установление клиентом Destination gRPC-соединения с указанным экземпляром Gateway. Задается в формате <число><единица времени>, где допустимые единицы времени – ms (миллисекунды), s (секунды) и m (минуты).

Тип: string

Значение по умолчанию: "5s"

Пример:

destination:  gateways:    - host: 127.0.0.1      port: 10080      dial_timeout: "3s"    - host: 127.0.0.1      port: 10081      dial_timeout: "2s"

destination.gateway [deprecated]

Начиная с TCF 0.5.0, параметр destination.gateway считается устаревшим. Вместо него используйте параметр destination.gateways.

Параметры подключения к Gateway, которые использует Destination для подключения по gRPC.

Тип: map

Пример:

destination:  gateway:    host: 192.168.64.9    port: 10080  # ...

destination.gateway.host

Адрес, на котором запущен gRPC-сервер.

Тип: string

destination.gateway.port

Порт для подключения к gRPC-серверу.

Тип: string

destination.gateway.dial_timeout

Доступно с версии 0.9.0.

Ограничение по времени на установление клиентом Destination gRPC-соединения с указанными экземплярами Gateway. Задается в формате <число><единица времени>, где допустимые единицы времени - ms (миллисекунды), s (секунды) и m (минуты).

Тип: string

Значение по умолчанию: "5s"

Пример:

destination:  gateway:    host: 127.0.0.1    port: 10080    dial_timeout: "3s"

destination.http_server

Параметры HTTP-сервера. См. также HTTP API репликаторов данных.

Тип: map

destination.http_server.host

Адрес, на котором запускается HTTP-сервер.

Тип: string

destination.http_server.port

Порт, на котором HTTP-сервер ожидает входящие соединения.

Тип: string

destination.http_server.ssl_cert_file

Доступно с версии 0.5.0.

Путь к файлу сертификата сервера, который используется для шифрования соединения между компонентами Gateway и Destination.

Пример:

destination:  http_server:    host: 0.0.0.0    port: 10081    ssl_cert_file: "/path/to/the/cert/file"    ssl_key_file: "/path/to/the/key/file"    ssl_ca_file: "/path/to/the/ca/file"

Тип: string

См. также: destination.http_server.ssl_key_file и ссылка.

destination.http_server.ssl_key_file

Доступно с версии 0.5.0.

Путь к файлу закрытого ключа сервера, который соответствует сертификату из параметра destination.http_server.ssl_cert_file.
Используется для установки защищенного TLS-соединения.

Тип: string

destination.http_server.ssl_ca_file {params[anchor=reference_replicators-destination-http_server-ssl_ca_file]

Доступно с версии 0.5.0.

Путь к файлу корневого сертификата, который используется для проверки подлинности клиента при установке TLS-соединения.

Тип: string

{heading(destination.storage)[id]}

Добавлен в версии 0.5.0.

Параметр требуется для работы с отказоустойчивыми группами Destination.

Если в конфигурации заданы несколько экземпляров, они обеспечивают отказоустойчивость при получении данных с компонента Gateway. Если экземпляр Destination, который используется сейчас для межкластерной репликации, становится недоступен, прием данных автоматически переключается на резервный экземпляр Destination из заданной группы экземпляров.

Поддерживаемые параметры:

  • storage – тип хранилища конфигурации, которое используется для хранения состояния кластеров. Тип: string. Возможные параметры: etcd_v2, etcd_v3, config_storage;
  • storage_params – параметры хранилища конфигурации. Возможные параметры:
    • endpoints – массив узлов хранилища конфигурации с возможностью указания нескольких подключений. Тип: array. Возможные параметры:
      • host – адрес узла хранилища состояния кластеров (например, etcd), на который Destination может выполнять запись. Тип: string;
      • port – порт для подключения к узлу хранилища состояния кластеров. Тип: string;
    • prefix – префикс (путь внутри хранилища состояния кластеров), который используется для размещения записей Destination. Значение по умолчанию: /tcf. Тип: string;
    • ttl – время жизни записей (TTL) в хранилище состояния кластеров, задаётся в секундах. Должно быть одинаковым для всех экземпляров Destination в группе. Значение по умолчанию: 30. Тип: number.

Пример:

destination:  storage: etcd_v2  storage_params:    endpoints:      - host: 192.168.64.10        port: 3013      - host: 192.168.64.11        port: 3013    prefix: /destination1    ttl: 10

destination.ssl_opts

Настройки TLS, используемые для подключения к экземплярам кластера. <gateway_or_destination>.ssl_opts описывает возможные параметры подключения.

Тип: array

destination.buffer_size

Размер внутреннего буфера на каждый набор реплик для выполнения служебных операций.

Тип: number

Значение по умолчанию: 1024

destination.log_level

Уровень логирования.

Возможные значения: fatal, syserror, error, crit, warn, info, verbose, debug

Тип: string

destination.log_type

Формат логов.

Возможные значения: plain, json

Тип: string

destination.log_path

Путь к каталогу с файлами логов.

Тип: string

destination.vshard_routers

Параметры подключения к роутерам кластера.

Пример:

destination:  # ...  vshard_routers:    hosts:      - "192.168.64.12:3301"    user: replicator    password: foobar

destination.vshard_routers.hosts

Список URI роутеров кластера. Если роутеров несколько, их URI перечислены через запятую.

Тип: array

destination.vshard_routers.user

Имя пользователя для подключения к экземпляру кластера.

Тип: string

destination.vshard_routers.password

Пароль пользователя, используемого для подключения.

Тип: string

destination.start_retry_delay

Задержка в миллисекундах перед началом повторной попытки подключения к роутерам для получения служебной информации и формирования соединения.

Тип: number

Значение по умолчанию: 100

destination.max_retry_delay

Максимальная задержка в миллисекундах перед началом повторной попытки подключения к роутерам для получения служебной информации и формирования соединения.

Тип: number

destination.retry_attempts

Количество разрешенных попыток повторного подключения к роутерам.

Тип: number

Значение по умолчанию: 10

destination.max_cpu

Максимальное число ядер, которые может использовать Destination. По умолчанию Destination использует все доступные ядра и создает один поток для каждого набора реплик.

Тип: number

destination.metrics_enabled

Включить метрики для Destination в формате Prometheus. Для получения значений метрик используйте /metrics.

Пример:

destination:  # ...  metrics_enabled: true

Тип: boolean

destination.metrics_labels

Пользовательские лейблы метрик Prometheus для Destination. Для получения значений метрик используйте HTTP-endpoint /metrics.

Пример:

destination:  # ...  metrics_enabled: true  metrics_labels:    custom_label: constant

Тип: map

Значение по умолчанию: {}

destination.alias

Параметр доступен начиная с версии 0.8.0.

Имя приложения для идентификации конкретного экземпляра Destination. Используется для отображения метрик конкретного экземпляра в Grafana.

Тип: string

Значение по умолчанию: destination

destination.truncate_collect_timeout

Параметр доступен начиная с версии 0.9.0.

Время, за которое ожидается получение на Destination операции truncate от каждого шарда исходного кластера.

Тип: number (в наносекундах) или string в формате time.ParseDuration (1s, 5m)

Значение по умолчанию: 1m

destination.truncate_buffer_size

Параметр доступен начиная с версии 0.9.0.

Размер буфера для репликационных событий, полученных Destination при ожидании получения truncate от каждого шарда исходного кластера. В буфер попадают события, которые должны быть обработаны строго после truncate.

Тип: number (количество репликационных событий)

Значение по умолчанию: 100000

destination.batch_size

Доступен начиная с версии 0.11.0.

Параметр задаёт максимальное количество сообщений репликаторов, которые Destination может накопить при получении с Gateway и обработать одновременно, объединяя несколько сообщений в одну транзакцию (на каждый набор реплик) при вставке на Tarantool вместо применения их по отдельности.

Пример:

destination:  batch_size: 100  # ...

Тип: number

Значение по умолчанию: 0 (выключен)

destination.batch_timeout

Доступен начиная с версии 0.11.0.

Интервал ожидания, после которого отправляется транзакция на Tarantool.

Если батчинг включён, сообщения отправляются при достижении размера destination.batch_size, либо по истечении установленного времени ожидания destination.batch_timeout.

Пример:

destination:  batch_size: 100  batch_timeout: 100ms  # ...

Тип: string

Значение по умолчанию: 100ms в формате time.ParseDuration (1s, 5m)

destination.gateway_clusters

Параметр доступен начиная с версии 0.10.0.

Список кластеров Gateway, к которым подключается Destination. Используется для маршрутизации событий и распределения данных между Gateway при работе с шардированными экземплярами Destination.

destination:  gateway_clusters:    cluster_1:      shard_1:        - host: localhost          port: 10080      shard_2:        - host: localhost          port: 20080

Тип: map

destination.gateway_clusters.<cluster_name>

Имя кластера Gateway. Совпадает с параметром cluster_1 кластера-источника.

Тип: string

destination.gateway_clusters.<shard_name>

Имя набора шардов внутри кластера Gateway. Задаётся при настройке набора репликаторов TCF и может быть выбрано произвольно. Значение – список экземпляров Gateway, обслуживающих набор шардов, с поддержкой отказоустойчивости.

Тип: string

destination.shards

Параметр доступен начиная с версии 0.10.0.

Список имён шардов хранилищ Tarantool, которые будет обслуживать экземпляр Destination. Используется для фильтрации нужных наборов реплик для записи при получении информации от vshard_routers. Это позволяет каждому экземпляру Destination обрабатывать только указанные шарды без изменения общей логики репликации.

Пример:

destination:  gateways:  vshard_routers:    shards: ["storage-002"]

<gateway_or_destination>.ssl_opts

Настройки TLS, используемые для подключения к экземплярам кластера. Данные настройки используются в следующих параметрах конфигурации:

Пример для Gateway:

gateway:  # ...  ssl_opts:    - key_file: "certs/dbhost1.key"      cert_file: "certs/dbhost1.crt"      ca_file: "certs/root_ca.crt"      ciphers: "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256"    - uri_regexp: "dbhost2"      key_file: "certs/dbhost2.key"      cert_file: "certs/dbhost2.crt"      ca_file: "certs/root_ca.crt"      ciphers: "GOST2012-GOST8912-GOST8912:GOST2001-GOST89-GOST89"

ssl_opts.uri_regexp

Формат, которому должен соответствовать URI экземпляра кластера.

Тип: string

ssl_opts.key_file

Путь к закрытому ключу.

Тип: string

ssl_opts.cert_file

Путь к сертификату.

Тип: string

ssl_opts.ca_file

Путь к корневому сертификату.

Тип: string

ssl_opts.ciphers

Список наборов шифров TLS, разделенных двоеточиями. Список поддерживаемых наборов шифров вы можете найти в документации Tarantool.

Тип: string