Refroidissements dans un pool de proxys : suivez les échecs et vérifiez la reprise
Donnez à un pool de proxys des états temporaires explicites et un chemin de reprise au lieu de supprimer un point de terminaison après une seule requête lente.
Un proxy manque une échéance. Le pool le supprime. Une heure plus tard, le proxy est de nouveau sain, mais votre application n'a aucun moyen de le découvrir, car elle a jeté l'enregistrement.
La suppression peut convenir à un compte révoqué ou à un point de terminaison que l'exploitant a retiré. Une défaillance passagère mérite un autre état.
Conservez assez d'historique pour la décision suivante
- Éligible
- Disponible pour le travail ordinaire selon la politique en vigueur.
- En refroidissement
- Retenu temporairement jusqu'à une échéance enregistrée.
- Sonde autorisée
- Une tentative contrôlée peut évaluer la reprise.
- Désactivé
- Un exploitant ou une condition durable l'a retiré du service.
Stockez la raison et l'étape avec la transition. Un refus de connexion, des identifiants rejetés, un corps de réponse lent et une erreur HTTP de destination ne devraient pas tous incrémenter un compteur indifférencié de « proxy mort ».
Utilisez une horloge de temps écoulé pour un refroidissement en cours de processus. Une horloge monotone évite qu'une attente courte dépende d'un réglage de l'horloge murale. Ne persistez pas un horodatage monotone comme s'il s'agissait d'une date portable partagée par d'autres machines ; un ordonnanceur distribué a besoin d'un modèle de temps et de propriété défini séparément.
La reprise ne doit pas libérer une ruée
Quand l'échéance expire, autorisez une petite tentative de reprise plutôt que d'envoyer toute la file d'attente d'un coup. Une tentative réussie peut rétablir l'éligibilité ; un nouvel échec peut prolonger la pause selon une politique bornée.
Choisissez la sonde pour le travail qu'elle est censée prédire. Une connexion TCP réussie n'est pas une transaction HTTP ou SOCKS complète. Une page de vérification d'IP sans rapport n'établit pas que la destination requise est joignable ou autorisée.
Aucune durée de refroidissement universelle ne découle du mot proxy. Fixez-la d'après le budget de latence de l'opération, le comportement du service et les conséquences d'une nouvelle tentative échouée. Préservez l'enregistrement du point de terminaison pour qu'une interruption temporaire ne devienne pas silencieusement une perte permanente de capacité.