TCF 0.9.0 | Clusters_Federation

TCF 0.9.0

Дата релиза: 04.07.2025.

В релизе TCF 0.9.0 добавлен ряд новых возможностей и обновлений.

Подробная информация о продукте приведена в документации Tarantool Clusters Federation.

Поддержка авторизации через Keycloak для HTTP API

Добавлена поддержка авторизации запросов к HTTP API компонентов Gateway, Destination и технологической роли TCF-worker с использованием Keycloak в качестве провайдера.

Для включения авторизации необходимо задать секцию authorization в конфигурации соответствующего компонента Gateway/Destination или TCF-worker. Поддерживаются следующие роли:

Подробнее про настройку авторизации HTTP API компонентов Gateway и Destination читайте в разделе Конфигурация репликаторов данных. Настройка авторизации для TCF-worker описана в разделе Конфигурация кластера в YAML (Tarantool 3.x).

Кроме того, в TCF 0.9.0 добавлена поддержка внутренних запросов с авторизацией между TCF-worker и компонентами Destination/Gateway.

Если TCF-worker делает внутренние запросы к Gateway или Destination с включённой авторизацией, необходимо указать параметры OAuth2-клиента.

Пример:

roles_cfg:
  roles.tcf-worker:
    authorization:
      provider: keycloak
      provider_params:
        client_id: "client"
        client_secret_path: "/path/to/file"
        realm: "myrealm"

В случае работы с кластерами Tarantool 2.x на основе Cartridge:

cluster_federation:
  authorization:
    provider: keycloak
    provider_params:
      client_id: "client"
      client_secret_path: "/path/to/file"
      realm: "myrealm"

Подробнее про настройку авторизации при работе с Tarantool Cartridge читайте в разделе Конфигурация кластера в YAML (Cartridge). Также, в рамках поддержки авторизации через Keycloak, введены новые записи журнала, позволяющие отслеживать события, связанные с авторизацией запросов к репликаторам. Подробнее см. раздел Журнал событий межкластерных репликаторов данных.

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

В конфигурацию межкластерных репликаторов данных добавлена опция destination.gateways.dial_timeout для компонента Destination, позволяющая задать ограничение по времени на установку gRPC-соединения с конкретным экземпляром Gateway.

Для группы из одного или нескольких экземпляров Gateway:

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

Поддержка безопасной репликации truncate между кластерами

Начиная с версии 0.9.0, операция truncate может безопасно реплицироваться между кластерами. Это улучшает согласованность данных при полной очистке таблиц в распределённой среде.

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

  • destination.truncate_collect_timeout: время ожидания получения truncate от всех шардов исходного кластера. Значение по умолчанию: 1m;

  • destination.truncate_buffer_size: размер буфера для событий, ожидающих применения после truncate. Значение по умолчанию: 100000.

Межкластерная репликация с операцией truncate доступна при соблюдении набора условий, описанных в разделе Архитектура: Особенности обработки truncate.

Found what you were looking for?
Feedback