Skip to content

Конфигурация брокера: serve.toml

Слои конфигурации, по возрастанию приоритета: дефолты → TOML-файл → переменные окружения ROXA_* → CLI-флаги. Файл передаётся флагом: roxa serve -c serve.toml.

Полный пример с комментариями

toml
# Адрес gRPC data-plane.
grpc_addr = "127.0.0.1:50051"

# Адрес Kafka wire protocol (kcat/librdkafka и др.). Флаг --no-kafka отключает.
kafka_addr = "127.0.0.1:9092"

# Адрес, который брокер сообщает Kafka-клиентам (Metadata). Для доступа с других
# машин здесь должен быть адрес, ВИДИМЫЙ клиенту (не 127.0.0.1).
# kafka_advertised_addr = "broker.example.com:9092"

# Каталог данных: WAL, метаданные (embedded redb), сегменты (при backend = "fs").
data_dir = "data"

# Адрес Prometheus /metrics. Закомментировать или --no-metrics, чтобы отключить.
metrics_addr = "127.0.0.1:9644"

# Фильтр логирования (перебивается переменной окружения RUST_LOG).
log = "info"

# Лицензионный токен (Pro/Enterprise). Без него — Community-режим.
# Удобнее задавать через env ROXA_LICENSE.
# license = "<token>"

# Аутентификация data-plane (gRPC + Kafka). Без секции — открытый доступ (для dev).
# gRPC-клиенты предъявляют Basic-учётные данные; Kafka-клиенты — SASL/PLAIN.
# Для продакшена — только поверх TLS. Пароли хэшируются argon2.
# role: "admin" | "viewer".
# [[auth.users]]
# username = "service"
# password = "change-me"
# role = "admin"

# Хранилище сегментов. По умолчанию — локальная ФС (zero-dep).
[storage]
backend = "fs"   # "fs" | "s3"

# S3/MinIO (backend = "s3"):
# [storage.s3]
# endpoint = "http://127.0.0.1:9000"
# bucket = "roxa"
# region = "us-east-1"
# access_key = "minioadmin"
# secret_key = "minioadmin"
# allow_http = true      # только для внутренней сети/MinIO без TLS

Ключевые поля

ПолеСмыслПо умолчанию
grpc_addrgRPC data-plane (roxactl, SDK)127.0.0.1:50051
kafka_addrKafka wire protocol127.0.0.1:9092
kafka_advertised_addrадрес брокера в ответах Metadata — критично для доступа извне= kafka_addr
data_dirметаданные и сегменты (fs)data
metrics_addrPrometheus /metrics127.0.0.1:9644
[storage] backendfs (локальный диск) или s3 (S3/MinIO)fs
[[auth.users]]пользователи data-plane (Basic/SASL-PLAIN, роли admin/viewer)нет — открытый доступ
license / ROXA_LICENSEлицензионный токеннет — Community

TLS для gRPC/Kafka-портов настраивается отдельной секцией — см. TLS и безопасность.

Retention (per-topic)

Удержание данных задаётся на топик при создании — по размеру и/или времени; как минимум один сегмент всегда сохраняется:

bash
roxactl topic create events --partitions 3 --retention-bytes 1073741824 --retention-ms 604800000

CLI-флаги serve

roxa serve [-c config.toml] [--addr H:P] [--kafka_addr H:P] [--data-dir DIR]
           [--metrics-addr H:P] [--no-metrics] [--no-kafka]