TCF 0.9.0
Дата релиза: 04.07.2025.
В релизе TCF 0.9.0 добавлен ряд новых возможностей и обновлений.
Подробная информация о продукте приведена в документации Tarantool Clusters Federation.
Добавлена поддержка авторизации запросов к HTTP API компонентов Gateway, Destination и технологической роли TCF-worker с использованием Keycloak в качестве провайдера.
Для включения авторизации необходимо задать секцию authorization в конфигурации соответствующего компонента Gateway/Destination или TCF-worker. Поддерживаются следующие роли:
info— доступ только к адресам обработчиков запросов со статусами и метриками;toggle— управление межкластерной репликацией, кроме перезапуска репликатора с повторной инициализацией (rebootstrap);admin— полный доступ, включая перезапуск репликатора с повторной инициализацией (rebootstrap).
Подробнее про настройку авторизации 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: keycloakprovider_params:client_id: "client"client_secret_path: "/path/to/file"realm: "myrealm"
В случае работы с кластерами Tarantool 2.x на основе Cartridge:
cluster_federation:authorization:provider: keycloakprovider_params:client_id: "client"client_secret_path: "/path/to/file"realm: "myrealm"
Подробнее про настройку авторизации при работе с Tarantool Cartridge читайте в разделе Конфигурация кластера в YAML (Cartridge). Также, в рамках поддержки авторизации через Keycloak, введены новые записи журнала, позволяющие отслеживать события, связанные с авторизацией запросов к репликаторам. Подробнее см. раздел Журнал событий межкластерных репликаторов данных.
В конфигурацию межкластерных репликаторов данных добавлена опция destination.gateways.dial_timeout для компонента Destination, позволяющая задать ограничение по времени на установку gRPC-соединения с конкретным экземпляром Gateway.
Для группы из одного или нескольких экземпляров Gateway:
destination:gateways:- host: 127.0.0.1port: 10080dial_timeout: "3s"- host: 127.0.0.1port: 10081dial_timeout: "2s"
Начиная с версии 0.9.0, операция truncate может безопасно реплицироваться между кластерами.
Это улучшает согласованность данных при полной очистке таблиц в распределённой среде.
В рамках этой возможности добавлены новые параметры конфигурации:
- destination.truncate_collect_timeout: время ожидания получения
truncateот всех шардов исходного кластера. Значение по умолчанию:1m; - destination.truncate_buffer_size: размер буфера для событий, ожидающих применения после
truncate. Значение по умолчанию:100000.
Межкластерная репликация с операцией truncate доступна при соблюдении набора условий, описанных в разделе Архитектура: Особенности обработки truncate.