Proxy B, ponovo proxy B, a zatim proxy A. Vaš dnevnik izgleda sumnjivo, ali slučajni birač smije raditi upravo to.

Biranje s istog popisa pri svakom zahtjevu dopušta ponavljanja. S dvije jednako vjerojatne krajnje točke, sljedeći nezavisni 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

ZahtjevPravilo odabira
Svaki je odabir neovisanSvaki put birajte s popisa podobnih
Iskoristite svaku krajnju točku jednom prije ponovnog početkaPromiješajte kopiju, potrošite je, zatim započnite novi prolaz
Izbjegavajte neposredno prethodnu krajnju točkuIsključite tu krajnju točku prije odabira

Za posljednju politiku izričito obradite slučaj s jednom krajnjom 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 krajnjih 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 krajnju 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 krajnje 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 krajnje točke. Dvije različite krajnje točke mogu voditi do jednog javnog izlaza, a jedna krajnja točka davatelja može voditi do nekoliko izlaza. Zabilježite to odvojeno prije nego zaključite da je rotacija pokvarena.

Povezani članci