Rotating bir Nodetonet proxy'sine her yeni bağlantı geldiğinde, router havuzdaki hangi cihazın işleyeceğine karar vermek zorunda. Karar milisaniyeler içinde gerçekleşir ve istemciye görünmez — ama bir havuzu ayarlıyorsanız ya da neden bir telefon aşırı yüklenirken diğeri boş otururmuş gibi göründüğünü debug ediyorsanız, algoritmanın ne yaptığını bilmek çok önemlidir.
Özet: Nodetonet iki kurallı bir basamak kullanır — önce en az bağlantı, ardından eşitliği bozmak için round-robin — ve bu kurallar yalnızca katı bir uygunluk kontrolünden geçen cihazlara uygulanır. Sticky session'lar geri dönen istemciler için seçiciyi tamamen devre dışı bırakır.
Neden saf rastgele yerine iki kurallı bir seçici?
Saf rastgele seçim basittir ama kısa zaman pencerelerinde dengesiz yük üretir; özellikle bir cihazın diğerinden daha hızlı uplink veya daha düşük gecikmeye sahip olduğu heterojen havuzlarda. Naif round-robin kağıt üzerinde eşit dağılır ama in-flight yükü görmezden gelir — hali hazırda yirmi bağlantıyı idare eden bir cihaza üçüncü isteği gönderir.
En az bağlantı + round-robin kombinasyonu her ikisini de çözer: en az bağlantı gerçek yükü takip eder, round-robin ise birden fazla cihazın en düşük sayıyı paylaştığı durumlarda temiz ve adil bir eşitlik bozucu sağlar. Bu, üretim HTTP yük dengeleyicilerinde kullanılan prensiptin aynısıdır ve havuzunuzda iki telefon olsun iki yüz olsun eşit iyi çalışır.
Kural 1 — en az bağlantı kazanır
Bir token grubuna bağlı backconnect uç noktasına bağlantı geldiğinde, router her uygun cihaza mevcut in-flight bağlantı sayısını sorar. En düşük sayıya sahip cihaz sonraki bağlantıyı alır.
Bu göründüğünden daha önemlidir. Telefon A'nın hızlı bir LTE bağlantısında on eşzamanlı scraping thread'ini işlediği, telefon B ve C'nin ise neredeyse boşta olduğu üç telefonluk bir havuz düşünün. En az bağlantı, sonraki burst'ı doğal olarak B ve C'ye yönlendirir; A'nın doyması ve havuzun herkes için bozulması önlenir. Manuel ağırlık yapılandırması gerekmeden ani iş yüklerini ve heterojen donanımı emer.
Kural 2 — round-robin eşitliği bozar
Birkaç cihaz aynı sayıda eşit olursa ne olur? Eşitlik bozucu olmayan saf en az bağlantı her zaman ilk uygun cihazı seçer, diğerlerini aç bırakır. Nodetonet, her eşitliği bozması gerektiğinde ilerleyen grup başına bir cursor tutarak bunu önler:
havuz = [phone-A, phone-B, phone-C] # hepsi boşta, 0 bağlantı
cursor = 0
istek 1 -> phone-A (cursor 1'e ilerler)
istek 2 -> phone-B (cursor 2'ye ilerler)
istek 3 -> phone-C (cursor 0'a döner)
istek 4 -> phone-A (cursor 1'e ilerler)
...
Hafif yük altında — örneğin bir havuzu ilk kez çevrimiçi getirdiğinizde — trafik eşit dağılır. Ağır yük altında en az bağlantı devralır ve cursor yalnızca kenarlarda önemli olur. İki kural birbirini mükemmel tamamlar.
İki kuralın karşılaştırması
| Senaryo | Tetiklenen birincil kural | Etki |
|---|---|---|
| Tüm cihazlar boşta (0 bağlantı) | Round-robin eşitlik bozucu | Havuzda eşit dağılım |
| Cihazlar farklı yük seviyelerinde | En az bağlantı | Düşük yüklü cihazlar yeni trafiği emer |
| Bazı cihazlar aynı sayıda eşit | Eşit gruptaki round-robin eşitlik bozucu | Eşit grupta açlık yok |
| Sticky session mevcut | Session harita araması (seçiciyi atlar) | Doğrudan bağlı cihaza döner |
| Tüm cihazlar uygunsuz | Seçim mümkün değil | Bağlantı net hata ile reddedilir |
Uygunluk — bir cihazı neler nitelendirir
Seçici yalnızca önce uygunluk kontrolünden geçen cihazları dikkate alır. Aşağıdakilerden herhangi biri doğruysa bir cihaz seçimden sessizce dışlanır:
- Çevrimdışı. Android agent'tan gelen kalıcı WebSocket kontrol kanalı zaman aşımına uğradı. Çalışan bir uplink yok, router bu cihaza yönlendirmez. Sinyal mekanizmaları için cihaz sağlığı — çevrimiçi gerçekte ne demek yazısına bakın.
- ERROR durumunda. Agent kalıcı bir hata bildirdi: telsiz kapalı, captive portal veri bağlantısını engelliyor veya veri sinyali yok. Cihaz toparlanır toparlanmaz otomatik olarak uygunluğa geri döner — manuel işlem gerekmez.
- IP rotasyonu devam ediyor. Bir sticky session TTL'si dolduğunda, Nodetonet cihaza taze bir IP almak için mobil veri bağlantısını düşürüp yeniden kurmasını söyler. Bu işlem yaklaşık beş ila on beş saniye sürer. Bu pencerede, yarım kırık bir radyo durumuna yeni trafik yönlendirmemek için cihaz havuzdan çıkarılır. IP rotasyonunun nasıl tetiklendiği hakkında daha fazlası için token rotasyonu — ne zaman ve neden yazısına bakın.
Gruptaki her cihaz uygunluk kontrolünden aynı anda geçemezse, gelen bağlantı proxy listener'da açıklayıcı bir hata ile hemen reddedilir — asla sessizce kuyruğa alınmaz. Bu fail-fast davranışı kasıtlıdır: asla çözülmeyen durmuş bir bağlantı, net bir reddiyeden daha zor debug edilir.
Sık uygunluk hataları görüyorsanız, rotating proxy panelinizden cihaz başına trafik grafiklerine bakın ve hangi cihazların gerçekten çevrimiçi olduğunu doğrulamak için proxy checker ile çapraz referans alın.
Sticky session'lar — seçici tamamen atlandığında
En az bağlantı + round-robin seçici yalnızca session tanımlayıcısı taşımayan bağlantılar için çalışır. Proxy kullanıcı adı bir -session-XXXX eki içerir içermez, router bunun yerine hızlı bir harita araması yapar:
- Bağlama bulundu ve TTL içinde: bağlantı, o anda kaç bağlantı taşıdığından bağımsız olarak doğrudan bağlı cihaza yönlendirilir. Seçici asla çağrılmaz.
- Bağlama süresi dolmuş veya henüz oluşturulmamış: seçici normalde çalışır ve sonuç o session ID için yeni bir bağlama olarak kaydedilir.
Bu tasarım sticky session'ları hafif tutar. Hot path tek bir bellek içi harita aramasıdır; seçici yalnızca her session'ın ilk isteğinde devreye girer. Session mekaniklerinin ayrıntılı bir incelemesi için sticky session'lar açıklandı yazısına bakın.
Takas, sabitlenmiş bir cihazın session süresi boyunca akranlarından daha fazla bağlantı biriktirebilmesidir. Çok sayıda eşzamanlı session ile çok uzun TTL kullanıyorsanız, havuzun dengesiz hale gelmediğinden emin olmak için cihaz başına yayılımı izleyin. Otomatik failover içeren token grupları, orijinal cihaz session ortasında çevrimdışı olursa session'ı farklı bir cihaza yeniden sabitler.
Trafik grafiklerinizden havuz davranışını okuma
Bir token grubuna bağlı herhangi bir rotating proxy'yi açın ve cihaz başına trafik dağılımına bakın. Gördüklerinizi nasıl yorumlayacağınız:
- Tüm çevrimiçi cihazlarda eşit yayılım: havuz sağlıklı ve seçici beklendiği gibi dağıtıyor.
- Bir cihaz yüksek yüzdede, diğerleri sıfıra yakın: düşük trafikli cihazlar tekrar tekrar uygunluk kontrolünden geçemiyor. Seçici sürekli tek hayatta kalana geri düşüyor. Boştaki telefonlarda pil, sinyal ve agent sürümünü kontrol edin.
- Trafik bir cihazda yoğunlaşmış ama diğerleri çevrimiçi: önceki bir dönemden aynı cihaza bağlı çok sayıda uzun süreli sticky session olabilir. TTL'lerin dolmasını bekleyin veya session ID'lerini rotate edin.
Daha derin inceleme için proxy checker aracı, belirli bir uç noktayı test edip hangi cihaz IP'sinin döndürüldüğünü görmenizi sağlar; böylece seçicinin beklediğiniz cihazları seçtiğini doğrulayabilirsiniz. Yük dengelemenin üstüne operatör veya geo hedeflemesini de doğrulamanız gerekiyorsa, kullanıcı adı değiştirici sözdizimi için geo-hedefleme'ye bakın.
Upstream iletme ve seçici
Token grubunuz upstream residential iletme ile yapılandırılmışsa, seçici yine de önce bir cihaz seçer — seçilen cihazın giden bağlantısı ardından upstream sağlayıcıya zincir yapar. Uygunluk kuralları ve iki kurallı basamak aynı şekilde geçerlidir; upstream katmanı seçim algoritmasına şeffaftır.
İş yükünüz için doğru havuzu oluşturma
Algoritma, havuzun benzer uplink kalitesine ve bağlantı bütçelerine sahip cihazlardan oluşmasında en iyi çalışır. Zayıf 3G'deki bir telefonu sağlam 5G'deki birkaç telefonla karıştırmak, 3G cihazının burst sırasında bağlantıları daha yavaş biriktirmesine neden olur; bu da onu geçici olarak en az bağlantıya göre "en ucuz" görünür kılabilir. Düşük kaliteli cihazları ayrı bir token grubuna izole edip yalnızca düşük öncelikli trafiği oraya yönlendirebilirsiniz.
Havuz boyutlandırma, failover yapılandırması ve token grupları oluşturma rehberi için token grupları — havuz oluşturma ve sıfırdan rotating mobil proxy kurulumu yazılarına bakın. Büyük bir filo yönetiyorsanız, 100+ proxy için toplu işlemler büyük ölçekte yapılandırma ve izlemeyi anlatır.
İşi en az bağlantı yapar. Round-robin adil yapar. Uygunluk sizi beladan uzak tutar.
Başlayın
Kendi rotating havuzunuzu oluşturmaya hazır mısınız? Nodetonet'te mobil proxy'lerin nasıl çalıştığına bakın ya da ücretsiz hesap açıp ilk token grubunuzu dakikalar içinde kurun. Sorularınız için support@nodetonet.com adresine yazabilir veya Discord topluluğumuza katılabilirsiniz.