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

Biranje sa istog spiska pri svakom zahtevu dozvoljava ponavljanja. Sa dve jednako verovatne krajnje tačke, sledeći nezavisni odabir ima šansu jedan prema dva da se poklopi sa prethodnim. Kratak niz sa ponavljanjima nije dokaz da je birač zanemario spisak.

Izaberite ponašanje koje vam je zaista potrebno

ZahtevPravilo odabira
Svaki odabir je nezavisanSvaki put birajte sa spiska podobnih
Iskoristite svaku krajnju tačku jednom pre ponovnog početkaPromešajte kopiju, potrošite je, zatim započnite novi prolaz
Izbegavajte neposredno prethodnu krajnju tačkuIsključite tu krajnju tačku pre odabira

Za poslednju politiku izričito obradite slučaj sa jednom krajnjom tač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 isečak pretpostavlja da je random uvezen i da je spisak krajnjih tačaka već proveren. Javni skup može započeti sa besplatnim spiskom proxyja kada se njegovi protokoli uklapaju u konačnog klijenta; ovo pravilo odabira i dalje kontroliše ponavljanja. Da li čekati, ponovo upotrebiti jedinu krajnju tačku ili stati, stvar je politike aplikacije. Beskonačna petlja koja čeka drugu slučajnu vrednost ne može rešiti spisak koji sadrži samo jedan različit izbor.

U paralelnom dispečeru, odabir i beleženje prethodne krajnje tačke takođe zahtevaju usklađeno vlasništvo. Inače dva radnika mogu oba isključiti staru vrednost i odabrati istu sledeću vrednost.

Najzad, ovo pravilo se tiče identiteta krajnje tačke. Dve različite krajnje tačke mogu voditi do jednog javnog izlaza, a jedna krajnja tačka dobavljača može voditi do nekoliko izlaza. Zabeležite to odvojeno pre nego što zaključite da je rotacija pokvarena.

Povezani članci