Конфигурация брокера: 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_addr | gRPC data-plane (roxactl, SDK) | 127.0.0.1:50051 |
kafka_addr | Kafka wire protocol | 127.0.0.1:9092 |
kafka_advertised_addr | адрес брокера в ответах Metadata — критично для доступа извне | = kafka_addr |
data_dir | метаданные и сегменты (fs) | data |
metrics_addr | Prometheus /metrics | 127.0.0.1:9644 |
[storage] backend | fs (локальный диск) или 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 604800000CLI-флаги serve
roxa serve [-c config.toml] [--addr H:P] [--kafka_addr H:P] [--data-dir DIR]
[--metrics-addr H:P] [--no-metrics] [--no-kafka]