menuTicketing

Правила конфигурации

  • В peers обязательно должен быть включён self, и должно быть перечислено минимум 2 узла (иначе паника при запуске).
  • Адрес прослушивания — это socket.bind (по умолчанию 0.0.0.0), а адрес объявления — это self. Если узел находится за файрволом/NAT, в self нужно указать адрес, по которому другие узлы реально смогут подключиться.
  • Порт берётся из self. В кластерном режиме переменная окружения PORT игнорируется, и портом прослушивания становится порт из self.
  • Порядок в peers — это приоритет повышения (первый в списке — наивысший приоритет).
toml
# ticketing.toml на 10.0.0.1
[cluster]
self  = "10.0.0.1:5225"
peers = ["10.0.0.1:5225", "10.0.0.2:5225"]
toml
# ticketing.toml на 10.0.0.2 — peers те же, отличается только self
[cluster]
self  = "10.0.0.2:5225"
peers = ["10.0.0.1:5225", "10.0.0.2:5225"]

Клиент (брокер) регистрирует оба адреса, чтобы при сбое происходило автоматическое переключение:

rust
TicketBroker::connect(&["10.0.0.1:5225", "10.0.0.2:5225"]);

Генератор реальной команды развёртывания см. на странице Развёртывание Ticketing Server.