Satunnaiset valinnat, sekoitetut kierrokset ja toistuvat välityspalvelimen päätepisteet
Valitse riippumattomien satunnaisvalintojen, sekoitetun kierroksen ja välittömän toiston välttävän käytännön välillä sen sijaan, että pitäisit toistuvaa päätepistettä rikkinäisenä rotaattorina.
Välityspalvelin B, jälleen välityspalvelin B ja sitten välityspalvelin A. Lokisi näyttää epäilyttävältä, mutta satunnaisvalitsin saa tehdä juuri niin.
Samasta luettelosta valitseminen jokaisessa pyynnössä sallii toistot. Kun kaksi päätepistettä on yhtä todennäköisiä, seuraavalla riippumattomalla valinnalla on yksi kahdesta mahdollisuus osua edelliseen. Lyhyt toistoja sisältävä sarja ei todista, että valitsin jätti luettelon huomiotta.
Valitse käyttäytyminen, jota todella tarvitset
| Vaatimus | Valintasääntö |
|---|---|
| Jokainen valinta on riippumaton | Valitse kelvollisesta luettelosta joka kerta |
| Käytä jokaista päätepistettä kerran ennen uudelleen aloittamista | Sekoita kopio, kuluta se ja aloita sitten uusi kierros |
| Vältä välittömästi edellistä päätepistettä | Sulje se päätepiste pois ennen valintaa |
Viimeisen käytännön osalta käsittele yhden päätepisteen tapaus nimenomaisesti:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Tämä katkelma olettaa, että random on tuotu ja päätepisteiden luettelo on jo validoitu. Julkinen pooli voi aloittaa ilmaisesta välityspalvelinluettelosta, kun sen protokollat sopivat loppuasiakkaalle; tämä valintasääntö ohjaa edelleen toistoja. Odottaminen, ainoan päätepisteen uudelleenkäyttö tai lopettaminen on sovelluksen käytäntö. Loputon silmukka, joka odottaa erilaista satunnaisarvoa, ei voi ratkaista luetteloa, jossa on vain yksi erilainen vaihtoehto.
Samanaikaisessa lähettimessä edellisen päätepisteen valinta ja tallentaminen vaativat myös koordinoidun omistajuuden. Muuten kaksi työntekijää voivat molemmat sulkea vanhan arvon pois ja valita saman seuraavan arvon.
Lopuksi tämä sääntö koskee päätepisteen identiteettiä. Kaksi eri päätepistettä voi johtaa yhteen julkiseen ulostuloon, ja yksi palveluntarjoajan päätepiste voi johtaa useisiin ulostuloihin. Kirjaa ne erikseen ennen kuin päätät, että rotaatio on rikki.