Changer la configuration sans redémarrer
GuideExploitationDepuis la version 0.1.0
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 suiteUne 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.yamlVé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.tlsetobservability. Les modifier refuse le rechargement en bloc, en nommant la clé. Les requêtes en cours finissent sur l'ancienne configuration, flux compris.