|
So’rovlarni cheklash resurslardan foydalanishni nazorat qilish va xizmat sifatini saqlash uchun muhim mexanizmdir. Go goroutinalar, kanallar va tickerlar yordamida so’rovlarni cheklashni nafis tarzda qo’llab-quvvatlaydi. |
|
![]()
|
|
|
|
|
|
|
Avval so’rovlarni cheklashning asosiy holatini ko’rib chiqamiz. Faraz qilaylik, kelayotgan so’rovlarni qayta ishlashni cheklamoqchimiz. Bu so’rovlarni xuddi shu nomdagi kanal orqali xizmat ko’rsatamiz. |
|
|
Bu |
|
|
Har bir so’rovga xizmat ko’rsatishdan oldin |
|
|
Umumiy cheklovni saqlagan holda, so’rovlarni cheklash
sxemamizda qisqa muddatli so’rovlar to’lqinlariga ruxsat
berishni xohlashimiz mumkin. Buni limiter kanalimizni
buferlash orqali amalga oshira olamiz. Bu |
|
|
Ruxsat etilgan to’lqinni ifodalash uchun kanalni to’ldiramiz. |
|
|
Har 200 millisekundda |
|
|
Endi yana 5 ta kelayotgan so’rovni simulyatsiya qilamiz.
Ulardan dastlabki 3 tasi |
|
|
Dasturimizni ishga tushirsak, so’rovlarning birinchi to’plami xohlaganimizdek har ~200 millisekundda bir marta qayta ishlanayotganini ko’ramiz. |
|
|
So’rovlarning ikkinchi to’plami uchun to’lqinli cheklash tufayli dastlabki 3 tasini darhol xizmat ko’rsatamiz, so’ngra qolgan 2 tasini har biri ~200ms kechikish bilan xizmat ko’rsatamiz. |
|
Keyingi misol: Atomic Counters.