Proxy B, weer proxy B en dan proxy A. Uw logboek ziet er verdacht uit, maar een willekeurige kiezer mag precies dat doen.

Bij elke aanvraag uit dezelfde lijst kiezen staat herhalingen toe. Met twee even waarschijnlijke eindpunten heeft de volgende onafhankelijke keuze één op twee kans om met de vorige overeen te komen. Een korte reeks met herhalingen is geen bewijs dat de kiezer de lijst heeft genegeerd.

Kies het gedrag dat u echt nodig hebt

VereisteKeuzeregel
Elke keuze is onafhankelijkKies elke keer uit de geschikte lijst
Gebruik elk eindpunt één keer voordat u opnieuw begintSchud een kopie, verbruik die en begin dan een nieuwe ronde
Vermijd het direct vorige eindpuntSluit dat eindpunt uit voordat u kiest

Behandel voor het laatste beleid het geval met één eindpunt expliciet:

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

Dit fragment gaat ervan uit dat random is geïmporteerd en dat de lijst met eindpunten al is gevalideerd. Een openbare pool kan beginnen met de gratis proxylijst wanneer de protocollen bij de uiteindelijke client passen; deze keuzeregel beheert nog steeds herhalingen. Of u wacht, het enige eindpunt hergebruikt of stopt, is een beleid van de toepassing. Een eindeloze lus die op een andere willekeurige waarde wacht, kan een lijst met slechts één afwijkende keuze niet oplossen.

In een gelijktijdige dispatcher vereisen het kiezen en vastleggen van het vorige eindpunt ook gecoördineerd eigenaarschap. Anders kunnen twee werkers beiden de oude waarde uitsluiten en dezelfde volgende waarde kiezen.

Ten slotte gaat deze regel over de identiteit van het eindpunt. Twee verschillende eindpunten kunnen naar één openbare uitgang leiden, en één provider-eindpunt kan naar meerdere uitgangen leiden. Registreer die afzonderlijk voordat u besluit dat de rotatie kapot is.

Gerelateerde artikelen