Təsadüfi seçimlər, qarışdırılmış keçidlər və təkrarlanan proxy son nöqtələri
Təkrarlanan son nöqtəni pozulmuş rotator hesab etmək əvəzinə müstəqil təsadüfi seçimlər, qarışdırılmış keçid və dərhal təkrarı istisna edən siyasət arasında seçim edin.
Proxy B, yenidən proxy B, sonra proxy A. Jurnalınız şübhəli görünür, amma təsadüfi seçici məhz bunu edə bilər.
Hər sorğuda eyni siyahıdan seçmək təkrarlara icazə verir. İki bərabər ehtimallı son nöqtə olduqda, növbəti müstəqil seçimin əvvəlki ilə üst-üstə düşmək şansı ikidə birdir. Təkrarlar olan qısa ardıcıllıq seçicinin siyahıya məhəl qoymadığına sübut deyil.
Həqiqətən ehtiyacınız olan davranışı seçin
| Tələb | Seçim qaydası |
|---|---|
| Hər seçim müstəqildir | Hər dəfə uyğun siyahıdan seçin |
| Yenidən başlamazdan əvvəl hər son nöqtəni bir dəfə istifadə edin | Bir kopyanı qarışdırın, onu istifadə edin, sonra yeni keçidə başlayın |
| Dərhal əvvəlki son nöqtədən çəkinin | Seçimdən əvvəl həmin son nöqtəni istisna edin |
Son siyasət üçün tək son nöqtə halını açıq şəkildə idarə edin:
candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)
Bu fraqment random modulunun idxal olunduğunu və son nöqtələr siyahısının artıq yoxlanıldığını fərz edir. İctimai hovuz, protokolları son müştəriyə uyğun olduqda pulsuz proxy siyahısı ilə başlaya bilər; bu seçim qaydası yenə də təkrarları idarə edir. Gözləmək, yeganə son nöqtəni təkrar istifadə etmək və ya dayandırmaq tətbiq siyasətidir. Fərqli təsadüfi dəyər gözləyən sonsuz dövrə yalnız bir fərqli seçim olan siyahını həll edə bilməz.
Eyni vaxtda işləyən dispetçerdə əvvəlki son nöqtənin seçilməsi və qeydə alınması da koordinasiyalı sahiblik tələb edir. Əks halda iki işçi köhnə dəyəri istisna edib eyni növbəti dəyəri seçə bilər.
Nəhayət, bu qayda son nöqtənin kimliyinə aiddir. İki fərqli son nöqtə bir ictimai çıxışa apara bilər, bir provayder son nöqtəsi isə bir neçə çıxışa apara bilər. Rotasiyanın pozulduğuna qərar verməzdən əvvəl bunları ayrıca qeyd edin.