Náhodné volby, promíchané průchody a opakované koncové body proxy
Vyberte si mezi nezávislými náhodnými volbami, promíchaným průchodem a politikou bez okamžitého opakování, místo abyste opakovaný koncový bod považovali za rozbitý rotátor.
Proxy B, znovu proxy B, potom proxy A. Váš protokol vypadá podezřele, ale náhodný vybírač smí dělat přesně tohle.
Výběr ze stejného seznamu při každém požadavku umožňuje opakování. Při dvou stejně pravděpodobných koncových bodech má další nezávislá volba šanci jedna ku dvěma, že se shodne s předchozí. Krátká série s opakováními není důkazem, že vybírač seznam ignoroval.
Vyberte chování, které skutečně potřebujete
| Požadavek | Pravidlo výběru |
|---|---|
| Každá volba je nezávislá | Pokaždé vybírejte z vhodného seznamu |
| Každý koncový bod použijte jednou, než začnete znovu | Zamíchejte kopii, spotřebujte ji a potom začněte další průchod |
| Vyhněte se bezprostředně předchozímu koncovému bodu | Před volbou tento koncový bod vylučte |
U poslední politiky výslovně ošetřete případ jediného koncového bodu:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Tento úryvek předpokládá, že random je importován a seznam koncových bodů je již ověřen. Veřejný fond může začít s bezplatným seznamem proxy, když jeho protokoly odpovídají budoucímu klientovi; toto pravidlo výběru stále řídí opakování. Zda čekat, znovu použít jediný koncový bod, nebo skončit, je politika aplikace. Nekonečná smyčka čekající na jinou náhodnou hodnotu nemůže vyřešit seznam obsahující jen jednu odlišnou volbu.
V souběžném dispečeru vyžaduje výběr a zaznamenání předchozího koncového bodu také koordinované vlastnictví. Jinak mohou dva pracovníci oba vyloučit starou hodnotu a vybrat stejnou další hodnotu.
Nakonec se toto pravidlo týká identity koncového bodu. Dva různé koncové body mohou vést k jednomu veřejnému výstupu a jeden koncový bod poskytovatele může vést k několika výstupům. Zaznamenejte je odděleně, než rozhodnete, že rotace je rozbitá.