Un proxy perde una scadenza. Il pool lo elimina. Un'ora dopo il proxy è di nuovo sano, ma la vostra applicazione non ha modo di scoprirlo perché ha buttato via il record.

La rimozione può essere appropriata per un account revocato o per un endpoint ritirato dall'operatore. Un guasto transitorio merita uno stato diverso.

Conservate una cronologia sufficiente per la decisione successiva

Idoneo
Disponibile per il lavoro ordinario secondo la politica attuale.
In raffreddamento
Trattenuto temporaneamente fino a una scadenza registrata.
Sonda consentita
Un tentativo controllato può valutare il ripristino.
Disabilitato
Un operatore o una condizione duratura lo ha rimosso dal servizio.

Memorizzate il motivo e la fase insieme alla transizione. Un rifiuto di connessione, credenziali respinte, un corpo di risposta lento e un errore HTTP di destinazione non dovrebbero tutti incrementare un contatore indifferenziato di «proxy morto».

Usate un orologio del tempo trascorso per un raffreddamento all'interno del processo. Un orologio monotono evita che un'attesa breve dipenda da una regolazione dell'orologio di parete. Non persistete un timestamp monotono come se fosse una data portatile condivisa da altre macchine; uno scheduler distribuito ha bisogno di un modello di tempo e proprietà definito separatamente.

Il ripristino non deve liberare una calca

Quando la scadenza scade, consentite un piccolo tentativo di ripristino invece di inviare tutta la coda di attesa in una volta. Un tentativo riuscito può ripristinare l'idoneità; un altro guasto può prolungare la pausa secondo una politica limitata.

Scegliete la sonda per il lavoro che deve prevedere. Una connessione TCP riuscita non è una transazione HTTP o SOCKS completa. Una pagina di controllo IP non correlata non stabilisce che la destinazione richiesta sia raggiungibile o consentita.

Nessuna durata universale di raffreddamento deriva dalla parola proxy. Impostatela in base al budget di latenza dell'operazione, al comportamento del servizio e alle conseguenze di un altro tentativo fallito. Preservate il record dell'endpoint affinché un'interruzione temporanea non diventi silenziosamente una perdita permanente di capacità.

Articoli correlati