Proxy B, znova proxy B, potom proxy A. Váš záznam vyzerá podozrivo, ale náhodný vyberač smie robiť presne to.

Výber z toho istého zoznamu pri každej požiadavke umožňuje opakovania. Pri dvoch rovnako pravdepodobných koncových bodoch má ďalší nezávislý výber šancu jedna k dvom zhodovať sa s predchádzajúcim. Krátka séria s opakovaniami nie je dôkazom, že vyberač zoznam ignoroval.

Vyberte správanie, ktoré skutočne potrebujete

PožiadavkaPravidlo výberu
Každá voľba je nezávisláZakaždým vyberajte z vhodného zoznamu
Každý koncový bod použite raz, kým začnete znovaZamiešajte kópiu, spotrebujte ju a potom začnite ďalší prechod
Vyhnite sa bezprostredne predchádzajúcemu koncovému boduPred výberom tento koncový bod vylúčte

Pri poslednej politike výslovne ošetrite prípad jediného koncového bodu:

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

Tento úryvok predpokladá, že random je importovaný a zoznam koncových bodov je už overený. Verejný fond môže začať s bezplatným zoznamom proxy, keď jeho protokoly zodpovedajú konečnému klientovi; toto pravidlo výberu stále riadi opakovania. Či čakať, znova použiť jediný koncový bod alebo skončiť, je politika aplikácie. Nekonečná slučka čakajúca na inú náhodnú hodnotu nedokáže vyriešiť zoznam obsahujúci len jednu odlišnú voľbu.

V súbežnom dispečeri výber a zaznamenanie predchádzajúceho koncového bodu tiež vyžadujú koordinované vlastníctvo. Inak môžu dvaja pracovníci obaja vylúčiť starú hodnotu a vybrať tú istú ďalšiu hodnotu.

Napokon, toto pravidlo sa týka identity koncového bodu. Dva rôzne koncové body môžu viesť k jednému verejnému výstupu a jeden koncový bod poskytovateľa môže viesť k niekoľkým výstupom. Zaznamenajte ich oddelene, kým rozhodnete, že rotácia je pokazená.

Súvisiace články