Backend, API et données · Avancé

Charge : limites de débit et auto-protection

En une ligne : Un système sain refuse tôt et clairement, plutôt que de s'effondrer lentement sous une charge qu'il ne peut pas supporter.

Limite de débit

Par consommateur, par route et par ressource. Renvoyez un code de statut approprié et un en-tête indiquant quand réessayer. Une limite non documentée génère des intégrations qui se cassent sans explication.

Séparez la protection contre les abus de la gestion de capacité. La première est précise, la seconde flexible.

Protéger le cœur

Une file avec une longueur maximale, un délestage de charge précoce et une isolation des ressources pour qu'une route lente ne vide pas toutes les connexions. Si une route de rapport lourde peut étouffer la route de connexion, vous avez un problème d'architecture, pas de capacité.

Tester avant, pas après

Lancez un test de charge sur un environnement ressemblant à la production, et trouvez le point où le temps de réponse explose. Ce point est votre capacité, et il vaut la peine de le connaître avant qu'une campagne marketing ne le découvre pour vous.

Pour aller plus loin

Définissez un comportement gradué : d'abord désactiver les capacités secondaires, puis ne servir que depuis le cache, et seulement à la fin refuser. Un système qui sait se rétrécir survit à une charge qui fait tomber un système qui ne sait que fonctionner ou tomber.