E Selektor kann perfekt rotéieren an trotzdem ëmmer deen éischte Proxy auswielen. De Feeler ass, fir all Ufro onbewosst en neien Selektor ze schafen, wat säi Compteur zrécksetzt, ier e eng zweet Wiel huet.

Bau de Selektor eng Kéier a behalt en zesumme mat dem Transport. D’HTTP-Proxy-Lëscht kann ëffentlech HTTP-Kandidaten fir de URL-Saz liwweren, wann d’Ufroe ëffentlech Zwëschekierper erlaben. Fänk mat enger schonn validéierter, net eidel Lëscht vun Proxy-URLen un:

func rotatingProxy(urls []*url.URL) func(*http.Request) (*url.URL, error) {
    var mu sync.Mutex
    next := 0
    return func(*http.Request) (*url.URL, error) {
        mu.Lock()
        selected := urls[next]
        next = (next + 1) % len(urls)
        mu.Unlock()
        return selected, nil
    }
}

D’ëmleiend Applikatioun muss eng eidel Lëscht refuséieren, d’URLen validéieren an déi normal net/http, net/url an sync Importer benotzen. D’Lëscht soll onverännert bleiwen, esou laang dësen Selektor se benotzt, oder duerch en separat synchroniséierte Konzept ersat ginn.

Hänk déi zréckgeliwwert Funktioun un een opgehuewenen http.Transport. De Mutex schützt d’Auswielsequenz iwwer gläichzäiteg Rückruff. Et verlaangt net, e Spär ze halen, wärend eng lues Netzwierkufro ofgeschloss gëtt.

Verbrauch keng Route just fir se ze printen

De Selektor nach eng Kéier fir eng Diagnosesnoscht ze ruffen, beweegt de Compteur nach eng Kéier virun. Dee Output beschreift vläicht den nächsten Kandidat amplaz vum Kandidat, deen d’Ufro, déi Dir ënnersicht, benotzt huet. Registréier d’Auswiel an der richteger Rückrufffunktioun mat enger sécherer Endpunkt-Identifikatioun.

En Aufruff vun enger Rückrufffunktioun ass kee Beweis, datt eng Ufro erfollegräich geliwwert gouf. Ëmleitungen oder zousätzlech Transportversich kënnen eng einfach Unnam „een Applikatiounsopruff, eng Auswiel“ erschwéieren. Wann e Workflow eng Route iwwer méi Operatiounen halen muss, wiel déi Route op der Grenz vum Workflow amplaz eng global rotéierend Rückrufffunktioun ze benotzen.

Round-Robin versprécht och keng verschidden ëffentlech Ausgäng. Et plangt Endpunkten. D’lescht Identitéit bleift eng Eegenschaft vum Wee, deen all Endpunkt zur Verfügung stellt.

Ähnlech Artikelen