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

VereisteKeusereël
Elke keuse is onafhanklikKies elke keer uit die geskikte lys
Gebruik elke eindpunt een keer voordat jy oorbeginSkommel 'n kopie, gebruik dit, begin dan 'n nuwe rondte
Vermy die onmiddellike vorige eindpuntSluit 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.

Verwante artikels