Nejaušas izvēles, sajaukti gājieni un atkārtoti starpniekservera galapunkti
Izvēlieties starp neatkarīgām nejaušām izvēlēm, sajauktu gājienu un politiku bez tūlītējas atkārtošanās, nevis uzskatiet atkārtotu galapunktu par bojātu rotatoru.
Starpniekserveris B, atkal starpniekserveris B, tad starpniekserveris A. Jūsu žurnāls izskatās aizdomīgi, taču nejaušs atlasītājs drīkst darīt tieši to.
Izvēlēšanās no tā paša saraksta katrā pieprasījumā pieļauj atkārtošanos. Ja ir divi vienlīdz iespējami galapunkti, nākamajai neatkarīgajai izvēlei ir viena no divām iespējām sakrist ar iepriekšējo. Īsa secība ar atkārtojumiem neliecina, ka atlasītājs ignorēja sarakstu.
Izvēlieties uzvedību, kas jums patiešām nepieciešama
| Prasība | Izvēles noteikums |
|---|---|
| Katra izvēle ir neatkarīga | Katru reizi izvēlieties no piemērotā saraksta |
| Izmantojiet katru galapunktu vienu reizi pirms atkārtotas sākšanas | Sajauciet kopiju, iztērējiet to, pēc tam sāciet jaunu gājienu |
| Izvairieties no tieši iepriekšējā galapunkta | Pirms izvēles izslēdziet šo galapunktu |
Pēdējai politikai skaidri apstrādājiet gadījumu ar vienu galapunktu:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Šis fragments pieņem, ka random ir importēts un galapunktu saraksts jau ir validēts. Publisks kopums var sākt ar bezmaksas starpniekserveru sarakstu, kad tā protokoli atbilst gala klientam; šis izvēles noteikums joprojām kontrolē atkārtošanos. Vai gaidīt, atkārtoti izmantot vienīgo galapunktu vai apstāties, ir lietojumprogrammas politika. Bezgalīga cilpa, kas gaida citu nejaušu vērtību, nevar atrisināt sarakstu, kurā ir tikai viena atšķirīga izvēle.
Vienlaicīgā izsūtītājā iepriekšējā galapunkta izvēlei un reģistrēšanai arī nepieciešama saskaņota īpašumtiesības. Pretējā gadījumā divi darbinieki var abi izslēgt veco vērtību un izvēlēties to pašu nākamo vērtību.
Visbeidzot, šis noteikums attiecas uz galapunkta identitāti. Divi dažādi galapunkti var novest pie vienas publiskas izejas, un viens pakalpojumu sniedzēja galapunkts var novest pie vairākām izejām. Reģistrējiet tos atsevišķi, pirms nolemjat, ka rotācija ir bojāta.