Skip to content

Gestão externa da configuração

Em instalações em cluster os streams do Sapsan são gerenciados por um sistema externo (por exemplo, o Flussonic Central): o servidor periodicamente busca numa URL externa a lista de streams e a aplica.

Configuração

config_external:
  url: http://central.example.com/central/api/v3/streamers/streamer1.example.com
  bearer: <token de acesso>
  client_host: streamer1.example.com
  interval_secs: 5
  timeout_ms: 30000
Parâmetro Descrição
url de onde buscar a configuração
bearer token de autorização para o servidor externo
client_host o nome com o qual este servidor se apresenta ao sistema de gestão
interval_secs período de sondagem (5 s por padrão)
timeout_ms tempo limite da requisição (30 s por padrão)
fetch_runtime_config se buscar também a configuração de runtime (true por padrão)

Important

Quando o config_external está ligado, a seção local streams do sapsan.yaml é ignorada — a fonte da verdade passa a ser o servidor externo. As demais seções (listeners, dvr, auth, api_auth) continuam locais, a menos que o servidor externo entregue as suas.

Como funciona a sondagem

  • O Sapsan pede GET <url>/streams a cada interval_secs; a lista é trazida página por página pelo cursor next. Cada requisição leva Authorization: Bearer, um cabeçalho x-originator: sapsan e o client_host.
  • A configuração de runtime (GET <url>/config — listeners, DVR, auth) é pedida só quando o servidor anuncia que tem uma.
  • Se a configuração não mudou, a reaplicação é omitida.

Tolerância a falhas

  • Uma lista parcialmente inválida: os streams quebrados são descartados (com indicação de qual campo falhou) e os válidos são aplicados — status Partial.
  • Uma configuração totalmente inválida (por exemplo, conflito de portas): nada é aplicado, continua rodando a configuração anterior — status Error.
  • Indisponibilidade do servidor externo, JSON quebrado e erros HTTP são distinguidos no status (network / malformed_json / http<code>).

O que vem a seguir