flexway
FRENParler à un expert

Changer la configuration sans redémarrer

GuideExploitationDepuis la version 0.1.0

Markdown

Guide d'exploitation : configurer, déployer et observer la passerelle. Ce que fait la capacité côté produit : guide produit ; l'appeler : guide développeur.

Objectif : ajouter une route, ajuster un quota, servir une seconde API - sans redémarrer et sans perdre une requête.

Commande - modifier le fichier ; la passerelle relit flexway.yaml et ses contrats toutes les 5 s (server.reload.interval) :

$EDITOR openapi.yaml
docker kill -s HUP flexway        # facultatif : prendre la modification tout de suite

Une seconde API, sur son propre hôte, depuis son propre contrat :

hosts:
  admin.example.com:
    default_upstream: backoffice
    contracts: [./admin.yaml]       # cet hôte sert exactement ce contrat, rien de openapi.yaml

Vérif : /config (port d'administration) montre une nouvelle config_version, un nouveau config_digest (l'empreinte sémantique, celle que flexway validate imprime) et last_reload.result: applied. Une erreur volontaire - un amont qui n'existe pas - ne remplace rien : la configuration en cours continue de servir, last_reload.result: rejected, la cause dans last_reload.cause et dans le journal, une seule fois.

Huit réglages exigent un redémarrage : server.shutdown, server.reload, server.counters, server.shedding, server.in_flight, server.cache, server.tls et observability. Les modifier refuse le rechargement en bloc, en nommant la clé. Les requêtes en cours finissent sur l'ancienne configuration, flux compris.

Étapes suivantes