Сонгогч төгс ээлжлээд ч эхний проксийг үргэлжлүүлэн сонгож болно. Алдаа нь хүсэлт бүрт санамсаргүйгээр шинэ сонгогч үүсгэхэд байдаг бөгөөд энэ нь хоёр дахь сонголт хийхээс өмнө тоологчийг нь тэглэдэг.

Сонгогчийг нэг удаа бүтээж, тээвэрлэлтийн хамт хадгал. HTTP прокси жагсаалт нь хүсэлтүүд нийтийн зуучлагчдыг зөвшөөрөх үед URL багцад нийтийн HTTP нэр дэвшигчдийг нийлүүлж чадна. Аль хэдийн баталгаажсан, хоосон бус прокси URL жагсаалтаас эхэл:

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
    }
}

Хүрээлэх програмыг хоосон жагсаалтыг татгалзаж, URL-уудыг баталгаажуулж, ердийн net/http, net/url болон sync импортуудыг ашиглах ёстой. Энэ сонгогч ашиглаж байх хугацаанд жагсаалт өөрчлөгдөхгүй байх ёстой, эсвэл тусдаа синхрончлогдсон загвараар солигдох ёстой.

Буцаасан функцийг нэг хадгалсан http.Transport-д холбоно уу. Mutex нь зэрэгцээ буцаан дуудлагуудын хооронд сонголтын дарааллыг хамгаална. Удаан сүлжээний хүсэлт дуусах үед түгжээ барих шаардлагагүй.

Маршрутыг зөвхөн хэвлэхийн тулд бүү зарцуул

Оношилгооны мессежийн тулд сонгогчийг дахин дуудах нь тоологчийг дахин урагшлуулна. Тэр гаралт нь таны судалж буй хүсэлтийн ашигласан нэр дэвшигчийн оронд дараагийн нэр дэвшигчийг тайлбарлаж болно. Сонголтыг жинхэнэ буцаан дуудлага дотор аюулгүй төгсгөлийн цэгийн танигчаар бүртгэ.

Буцаан дуудлагыг дуудах нь хүсэлт амжилттай хүргэгдсэний баталгаа биш. Дахин чиглүүлэх эсвэл нэмэлт тээврийн оролдлого нь «нэг програмын дуудлага, нэг сонголт» гэсэн энгийн таамаглалыг хүндрүүлж болно. Ажлын урсгал хэд хэдэн үйлдлийн турш нэг маршрутыг хадгалах шаардлагатай бол глобал эргэлддэг буцаан дуудлагыг ашиглахын оронд тэр маршрутыг ажлын урсгалын хил дээр сонго.

Ээлжит эргэлт нь өөр өөр нийтийн гаралтыг амлахгүй. Энэ нь төгсгөлийн цэгүүдийг хуваарьладаг. Эцсийн таних тэмдэг нь төгсгөлийн цэг бүрийн нийлүүлдэг замын шинж чанар хэвээр байна.

Холбоотой нийтлэлүүд