Slučajni odabiri, promiješani prolazi i ponovljene proxy završne točke
Odaberite između neovisnih slučajnih odabira, promiješanog prolaza i politike bez neposrednog ponavljanja, umjesto da ponovljenu završnu točku smatrate pokvarenim rotatorom.
Proxy B, ponovno proxy B, a zatim proxy A. Vaš zapis izgleda sumnjivo, ali slučajni birač smije činiti upravo to.
Biranje s istog popisa pri svakom zahtjevu dopušta ponavljanja. Uz dvije jednako vjerojatne završne točke, sljedeći neovisni odabir ima šansu jedan prema dva da se podudara s prethodnim. Kratak niz s ponavljanjima nije dokaz da je birač zanemario popis.
Odaberite ponašanje koje vam je doista potrebno
| Zahtjev | Pravilo odabira |
|---|---|
| Svaki je odabir neovisan | Svaki put birajte s popisa prihvatljivih |
| Iskoristite svaku završnu točku jednom prije ponovnog početka | Promiješajte kopiju, potrošite je, zatim započnite novi prolaz |
| Izbjegavajte neposredno prethodnu završnu točku | Isključite tu završnu točku prije odabira |
Za posljednju politiku izričito obradite slučaj s jednom završnom točkom:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Ovaj isječak pretpostavlja da je random uvezen i da je popis završnih točaka već provjeren. Javni skup može započeti s besplatnim popisom proxyja kada se njegovi protokoli uklapaju u konačnog klijenta; ovo pravilo odabira i dalje kontrolira ponavljanja. Hoćete li čekati, ponovno upotrijebiti jedinu završnu točku ili stati, stvar je politike aplikacije. Beskonačna petlja koja čeka drugu slučajnu vrijednost ne može riješiti popis koji sadrži samo jedan različit izbor.
U paralelnom dispečeru, odabir i bilježenje prethodne završne točke također zahtijeva usklađeno vlasništvo. Inače dva radnika mogu oba isključiti staru vrijednost i odabrati istu sljedeću vrijednost.
Naposljetku, ovo se pravilo tiče identiteta završne točke. Dvije različite završne točke mogu voditi do jednog javnog izlaza, a jedna završna točka davatelja može voditi do nekoliko izlaza. Zabilježite to odvojeno prije nego zaključite da je rotacija pokvarena.