Slučajni odabiri, promešani prolazi i ponovljene proxy krajnje tačke
Izaberite između nezavisnih slučajnih odabira, promešanog prolaza i politike bez neposrednog ponavljanja, umesto da ponovljenu krajnju tačku smatrate pokvarenim rotatorom.
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
| Zahtev | Pravilo odabira |
|---|---|
| Svaki odabir je nezavisan | Svaki put birajte sa spiska podobnih |
| Iskoristite svaku krajnju tačku jednom pre ponovnog početka | Promešajte kopiju, potrošite je, zatim započnite novi prolaz |
| Izbegavajte neposredno prethodnu krajnju tačku | Isključ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.