Proxy B, proxy B igjen, deretter proxy A. Loggen din ser mistenkelig ut, men en tilfeldig velger har lov til å gjøre akkurat det.

Å velge fra samme liste ved hver forespørsel tillater gjentakelser. Med to like sannsynlige endepunkter har neste uavhengige valg én av to sjanse for å matche det forrige. En kort serie med gjentakelser er ikke bevis for at velgeren ignorerte listen.

Velg atferden du faktisk trenger

KravValgregel
Hvert valg er uavhengigVelg fra den kvalifiserte listen hver gang
Bruk hvert endepunkt én gang før du starter på nyttBland en kopi, bruk den opp, og start deretter et nytt gjennomløp
Unngå det umiddelbart forrige endepunktetUtelukk det endepunktet før du velger

For den siste policyen, håndter tilfellet med ett endepunkt eksplisitt:

candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
    raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)

Dette utdraget forutsetter at random er importert og at listen over endepunkter allerede er validert. En offentlig pool kan begynne med den gratis proxy-listen når protokollene passer til den endelige klienten; denne valgregelen styrer fortsatt gjentakelser. Om man skal vente, gjenbruke det eneste endepunktet eller stoppe, er en applikasjonspolicy. En endeløs løkke som venter på en annen tilfeldig verdi kan ikke løse en liste som bare inneholder ett distinkt valg.

I en samtidig dispatcher krever valg og registrering av forrige endepunkt også koordinert eierskap. Ellers kan to arbeidere begge utelukke den gamle verdien og velge den samme neste verdien.

Til slutt gjelder denne regelen endepunktets identitet. To forskjellige endepunkter kan føre til én offentlig utgang, og ett leverandørendepunkt kan føre til flere utganger. Registrer dem separat før du bestemmer at rotasjonen er ødelagt.

Relaterte artikler