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. Поддерживаются следующие роли:
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: 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.