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

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

Документ рассматривает параметры конфигурации репликаторов данных для 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
      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– путь к файлу закрытого ключа сервера, который соответствует сертификату из параметра destination.gateways.ssl_cert_file. Тип: string;

  • 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.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_cert_file и gateway.grpc_server.ssl_key_file являются взаимозависимыми — при указании одного из них второй становится обязательным.

См. также: 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_cert_file и gateway.grpc_server.ssl_key_file являются взаимозависимыми — при указании одного из них второй становится обязательным.

gateway.grpc_server.ssl_ca_file

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

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

Тип: string

Примечание

Параметр gateway.grpc_server.ssl_ca_file обрабатывается только в случае, если заданы gateway.grpc_server.ssl_cert_file и gateway.grpc_server.ssl_key_file. При их отсутствии возникает ошибка.

gateway.http_server

Параметры HTTP-сервера. См. также TCF Gateway.

Тип: 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.http_server.ssl_cert_file и gateway.http_server.ssl_key_file являются взаимозависимыми — при указании одного из них второй становится обязательным.

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

gateway.http_server.ssl_key_file

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

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

Тип: string

Примечание

Параметры gateway.http_server.ssl_cert_file и gateway.http_server.ssl_key_file являются взаимозависимыми — при указании одного из них второй становится обязательным.

gateway.http_server.ssl_ca_file

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

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

Тип: string

Примечание

Параметр gateway.http_server.ssl_ca_file обрабатывается только в случае, если заданы gateway.http_server.ssl_cert_file и gateway.http_server.ssl_key_file. При их отсутствии возникает ошибка.

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

Тип: boolean

gateway.alias

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

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

Тип: string

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

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
      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;

  • 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.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:
    ssl_cert_file: /path/to/server.crt
    ssl_key_file: /path/to/server.key
    ssl_ca_file: /path/to/ca.crt

Примечание

Параметры ssl_cert_file и ssl_key_file являются взаимозависимыми — при указании одного из них второй становится обязательным.

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

destination.gateways.ssl_key_file

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

Путь к файлу закрытого ключа сервера, который соответствует сертификату из параметра destination.gateways.ssl_cert_file.

Используется для установки защищенного TLS-соединения.

Тип: string

Примечание

Параметры destination.gateways.ssl_cert_file и destination.gateways.ssl_key_file являются взаимозависимыми — при указании одного из них второй становится обязательным.

destination.gateways.ssl_ca_file

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

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

Тип: string

Примечание

Параметр destination.gateways.ssl_ca_file обрабатывается только в случае, если заданы destination.gateways.ssl_cert_file и destination.gateways.ssl_key_file. При их отсутствии возникает ошибка.

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

Начиная с 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-сервера. См. также TCF Destination.

Тип: 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"

Примечание

Параметры destination.http_server.ssl_cert_file и destination.http_server.ssl_key_file являются взаимозависимыми — при указании одного из них второй становится обязательным.

Тип: string

См. также: destination.http_server.ssl_key_file и destination.http_server.ssl_ca_file.

destination.http_server.ssl_key_file

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

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

Тип: string

Примечание

Параметры destination.http_server.ssl_cert_file и destination.http_server.ssl_key_file являются взаимозависимыми — при указании одного из них второй становится обязательным.

destination.http_server.ssl_ca_file

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

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

Тип: string

Примечание

Параметр destination.http_server.ssl_ca_file обрабатывается только в случае, если заданы destination.http_server.ssl_cert_file и destination.http_server.ssl_key_file. При их отсутствии возникает ошибка.

destination.storage

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

Параметр позволяет задать группу из одного или нескольких экземпляров Destination, на которые компонент Destination может выполнять запись реплицируемых данных.

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

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

  • storage– тип хранилища конфигурации, которое используется для хранения состояния кластеров. Тип: string. Возможные параметры: etcd_v2, etcd_v3, config_storage;

  • storage_params – параметры хранилища конфигурации. Возможные параметры:

    • endpoints – массив узлов хранилища конфигурации с возможностью указания нескольких подключений. Тип: array. Возможные параметры:

      • host– адрес узла хранилища состояния кластеров (например, etcd), на который Destination может выполнять запись. Тип: string;

      • port – порт для подключения к узлу хранилища состояния кластеров. Тип: string;

    • prefix– префикс (путь внутри хранилища состояния кластеров), который используется для размещения записей Destination. Должен быть уникальным для каждой группы экземпляров 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. Для получения значений метрик используйте HTTP-endpoint /metrics.

Пример:

destination:
  # ...
  metrics_enabled: true

Тип: boolean

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

<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

Нашли ответ на свой вопрос?
Обратная связь