Каждый параметр (опционального) ticketing.toml можно также задать через переменную окружения. Приоритет: переменная окружения > ticketing.toml > значение по умолчанию, ключи и булевы значения регистронезависимы. Docker-образ основан на scratch, поэтому конфигурация через переменные окружения — вариант по умолчанию (чтобы использовать файл конфигурации, смонтируйте его и укажите путь через CONFIG).
| Переменная окружения | По умолчанию | Описание |
|---|---|---|
PORT (SERVER_PORT) | 5225 | TCP-порт прослушивания. Игнорируется в кластерном режиме — используется порт из CLUSTER_SELF |
DEBUG (SERVER_DEBUG) | зависит от сборки | 1/true — включает debug-логирование |
SOCKET_BIND | 0.0.0.0 | Адрес прослушивания |
SOCKET_NODELAY | true | TCP_NODELAY |
SOCKET_READ_BUF_LEN | 4096 | Буфер чтения на соединение (байт) |
SOCKET_REPLY_QUEUE | 1024 | Длина очереди ответов на соединение |
SOCKET_REPLY_BATCH | 64 | Максимальное число ответов, объединяемых в одной операции write |
SWEEP_INTERVAL_SECS | 5 | Периодичность очистки истёкших ключей (сек.) |
CLUSTER_SELF | (нет) | Адрес объявления этого узла host:port. Если задан — кластерный режим |
CLUSTER_PEERS | (нет) | Список адресов узлов (через запятую). Порядок = приоритет повышения, должен включать self, минимум 2 |
CONFIG | ./conf/ticketing.toml | Путь к файлу конфигурации |
[cluster] (или CLUSTER_*) не задан — одиночный узел. Самый быстрый вариант, но при перезапуске возникает короткий простой, а состояние хранится в памяти и исчезает при перезапуске (lease служит страховкой).CLUSTER_PEERS (в порядке приоритета) и CLUSTER_SELF, указывающий на самого себя. Среди живых узлов тот, у кого приоритет выше, становится активным, остальные — стендбай и получают репликацию в реальном времени. Подробнее о принципе работы см. Принцип работы и Протокол — сервер ↔ сервер.Для развёртывания кластера в Kubernetes используется StatefulSet + headless-сервис. Каждый под получает стабильное DNS-имя (
ticketing-0.ticketing…,ticketing-1.ticketing…); эти имена в порядке приоритета указываются вCLUSTER_PEERS, аCLUSTER_SELFкаждого пода автоматически подставляется через downward API (metadata.name).
Ctrl+C) — через хэндовер стендбай повышается, и клиенты переключаются на него.sarolab/ticketing · Github: saro-lab/ticketing