Ewekansige keuses, geskommelde rondtes en herhaalde proxy-eindpunte
Kies tussen onafhanklike ewekansige keuses, 'n geskommelde rondte en 'n beleid sonder onmiddellike herhaling, eerder as om 'n herhaalde eindpunt as 'n stukkende roteerder te beskou.
Proxy B, weer proxy B, dan proxy A. Jou log lyk verdag, maar 'n ewekansige keurder mag presies dit doen.
Om by elke versoek uit dieselfde lys te kies, laat herhalings toe. Met twee ewe waarskynlike eindpunte het die volgende onafhanklike keuse 'n een-uit-twee kans om met die vorige een ooreen te stem. 'n Kort reeks met herhalings is nie bewys dat die keurder die lys geïgnoreer het nie.
Kies die gedrag wat jy werklik nodig het
| Vereiste | Keusereël |
|---|---|
| Elke keuse is onafhanklik | Kies elke keer uit die geskikte lys |
| Gebruik elke eindpunt een keer voordat jy oorbegin | Skommel 'n kopie, gebruik dit, begin dan 'n nuwe rondte |
| Vermy die onmiddellike vorige eindpunt | Sluit daardie eindpunt uit voordat jy kies |
Vir die laaste beleid, hanteer die geval met een eindpunt eksplisiet:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Hierdie fragment neem aan dat random ingevoer is en die eindpuntlys reeds gevalideer is. 'n Openbare poel kan met die gratis proxyslys begin wanneer sy protokolle by die uiteindelike kliënt pas; hierdie keusereël beheer steeds herhalings. Of om te wag, die enigste eindpunt te hergebruik of te stop, is 'n toepassingsbeleid. 'n Eindelose lus wat op 'n ander ewekansige waarde wag, kan nie 'n lys oplos wat net een afsonderlike keuse bevat nie.
In 'n gelyktydige verspreider vereis die keuse en aantekening van die vorige eindpunt ook gekoördineerde eienaarskap. Anders kan twee werkers albei die ou waarde uitsluit en dieselfde volgende waarde kies.
Laastens handel hierdie reël oor eindpuntidentiteit. Twee verskillende eindpunte kan na een openbare uitgang lei, en een verskaffereindpunt kan na verskeie uitgange lei. Teken dit afsonderlik aan voordat jy besluit die rotasie is stukkend.