Mobil tətbiqdə şəbəkə kəsilmələrinə qarşı dayanıqlılıq — "Exponential Backoff" və "Jitter" alqoritmləri

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Mobil tətbiqdə şəbəkə kəsilmələrinə qarşı dayanıqlılıq — "Exponential Backoff" və "Jitter" alqoritmləri

Asher Bailey
Birinci abzas
Mobil rabitə şəbəkələri daxili strukturlarına görə sabit deyil — istifadəçilər tunellərdən keçərkən, liftə daxil olarkən və ya sıx daxili məkanlarda hərəkət edərkən internet bağlantısı qəfil kəsilə və ya zəifləyə bilər. İdman analitikası platformalarında belə şəbəkə kəsilmələri zamanı tətbiqin serverə ard-arda uğursuz sorğular göndərməsi həm cihazın batareyasını sürətlə tükəndirir, həm də server tərəfini lazımsız yükləyərək çökdürə bilər. Bunun qarşısını almaq üçün müasir proqram təminatı arxitekturasında xüsusi ağıllı təkrar cəhd (retry) alqoritmlərindən istifadə olunur. Bu texnoloji mühafizə sistemlərini dərindən öyrənmək, şəbəkə paketlərinin idarəetmə metodlarını mənimsəmək və ən stabil bağlantı modullarına malik yeni tətbiq versiyasını yükləmək üçün istifadəçilər mostbet indir rəsmi resursundakı mühəndislik sənədlərini araşdırırlar.
"Exponential Backoff" (Eksponensial Gecikmə) mexanizmi
Əgər tətbiq hər hansı bir şəbəkə sorğusu zamanı xəta alarsa, dərhal eyni saniyədə təkrar sorğu göndərmək effektiv həll yolu deyil. Çünki şəbəkə problemi və ya serverdəki müvəqqəti yüklənmə hələ aradan qalxmamış ola bilər.
"Exponential Backoff" alqoritmi hər növbəti uğursuz cəhddən sonra gözləmə müddətini eksponensial olaraq artırır.
Bu düstura əsasən, əgər birinci cəhd uğursuz olarsa, tətbiq 2 saniyə gözləyir. İkinci uğursuzluqdan sonra 4 saniyə, üçüncüdən sonra isə 8 saniyə gözləyərək yeni sorğu göndərir. Bu yanaşma həm şəbəkəyə özünü bərpa etmək üçün zaman qazandırır, həm də cihazın daxili resurslarını qoruyur.
"Jitter" (Təsadüfilik) faktorunun zərurəti
Sırf eksponensial gecikmə tətbiq etmək bəzən server tərəfində böyük tıxanmalara (Thundering Herd Problem) səbəb ola bilər. Məsələn, əgər minlərlə istifadəçinin tətbiqi eyni anda şəbəkə xətası alıbsa və hamısı eyni riyazi düsturla gözləyirsə, onların hamısı tam olaraq eyni saniyədə (məsələn, 4-cü saniyədə) serverə təkrar hücum edəcəkdir.
Bu zaman hər bir cihaz özü üçün təsadüfi bir saniyə aralığı seçir. Nəticədə, minlərlə cihazın eyni anda serveri yükləməsinin qarşısı tamamilə alınır, sorğular zamana bərabər şəkildə paylanır və sistemin daxili dayanıqlılığı maksimum həddə çatır.