Naključne izbire, premešani prehodi in ponavljajoče se proxy končne točke
Izberite med neodvisnimi naključnimi izbirami, premešanim prehodom in politiko brez takojšnjega ponavljanja, namesto da ponovljeno končno točko obravnavate kot pokvarjen rotator.
Proxy B, spet proxy B, nato proxy A. Vaš dnevnik je videti sumljiv, a naključni izbirnik sme storiti prav to.
Izbiranje z istega seznama pri vsaki zahtevi dovoljuje ponavljanja. Pri dveh enako verjetnih končnih točkah ima naslednja neodvisna izbira eno od dveh možnosti, da se ujema s prejšnjo. Kratko zaporedje s ponavljanji ni dokaz, da je izbirnik seznam prezrl.
Izberite vedenje, ki ga resnično potrebujete
| Zahteva | Pravilo izbire |
|---|---|
| Vsaka izbira je neodvisna | Vsakič izberite s primernega seznama |
| Vsako končno točko uporabite enkrat, preden začnete znova | Premešajte kopijo, jo porabite in nato začnite nov prehod |
| Izogibajte se neposredno prejšnji končni točki | Pred izbiro izključite to končno točko |
Za zadnjo politiko izrecno obravnavajte primer z eno končno točko:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Ta odlomek predpostavlja, da je random uvožen in da je seznam končnih točk že preverjen. Javni nabor lahko začne z brezplačnim seznamom proxyjev, ko se njegovi protokoli ujemajo s končnim odjemalcem; to pravilo izbire še vedno nadzoruje ponavljanja. Ali čakati, znova uporabiti edino končno točko ali se ustaviti, je politika aplikacije. Neskončna zanka, ki čaka na drugo naključno vrednost, ne more rešiti seznama, ki vsebuje samo eno različno izbiro.
V sočasnem razpošiljatelju izbira in beleženje prejšnje končne točke zahtevata tudi usklajeno lastništvo. Sicer lahko dva delavca oba izključita staro vrednost in izbereta isto naslednjo vrednost.
Nazadnje, to pravilo se nanaša na identiteto končne točke. Dve različni končni točki lahko vodita do enega javnega izhoda, ena končna točka ponudnika pa lahko vodi do več izhodov. Zapišite jih ločeno, preden se odločite, da je rotacija pokvarjena.