Willekeurige keuzes, geschudde rondes en herhaalde proxy-eindpunten
Kies tussen onafhankelijke willekeurige keuzes, een geschudde ronde en een beleid zonder onmiddellijke herhaling, in plaats van een herhaald eindpunt als een kapotte rotator te zien.
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
| Vereiste | Keuzeregel |
|---|---|
| Elke keuze is onafhankelijk | Kies elke keer uit de geschikte lijst |
| Gebruik elk eindpunt één keer voordat u opnieuw begint | Schud een kopie, verbruik die en begin dan een nieuwe ronde |
| Vermijd het direct vorige eindpunt | Sluit 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.