Message Queues and Async Processing
Xabar navbatlari va asinxron ishlov berish
Pochta bo'limiga xat topshirganingizda, siz uni QABUL qilgan xodim bilan bir necha soniya gaplashasiz, xolos — u xatni QACHON va QANDAY yetkazishini SIZ kutib TURMAYSIZ, o'z ishingiz bilan davom etasiz. Xat esa "navbatga" tushib, KEYINROQ, alohida tashuvchi orqali YETKAZILADI. Message queue (xabar navbati) — dasturlar orasida aynan shu "topshiring-va-ketavering" aloqa usulini ta'minlaydi.
"Build a Task Queue" kursida siz Go kanallari orqali, BITTA jarayon ICHIDA ishlaydigan navbatni QURGAN edingiz — bu ajoyib boshlanish nuqtasi, lekin u faqat BITTA dastur ICHIDA, xotirada ishlaydi. Tizim darajasida, xabar navbati odatda ALOHIDA, mustaqil XIZMAT (Kafka, RabbitMQ, Amazon SQS kabi) sifatida ishlaydi — bu, navbatning O'ZI ham server o'chib qolsa YO'QOLMASLIGINI (diskga yozilishini) va BIR NECHTA turli xizmat (Introduction to Microservices kursida ko'rgan mikroservislar) O'RTASIDA ishlatilishini ta'minlaydi.
Bu — sinxron (darhol javob kutiladigan, masalan oddiy HTTP so'rov) va asinxron (topshirilib, natija KEYINROQ kutiladigan) ishlov berish orasidagi farqni ANGLATADI. Masalan, foydalanuvchi video yuklaganda, server VIDEONI darhol qayta ishlab (bu daqiqalab davom etishi mumkin) natijani QAYTARISH o'rniga, vazifani navbatga qo'yib, "qabul qildim" deb DARHOL javob beradi — Latency vs Throughput darsida ko'rgan g'oyaning amaliy qo'llanilishi.
- •Xizmatlarni AJRATADI (decoupling) — xabar yuboruvchi va qabul qiluvchi bir-birini BEVOSITA bilishi shart emas, faqat navbat orqali GAPLASHADI
- •Trafik CHO'QQISINI (spike) SO'RIB oladi — birdaniga ko'p so'rov kelsa, ular navbatga TIZILADI va worker'lar o'z SUR'ATIDA ishlov beradi, tizim OG'IRLASHMAYDI
- •Ishonchlilikni OSHIRADI — agar vazifani qayta ishlovchi xizmat vaqtincha O'CHSA, xabarlar navbatda KUTIB turadi, tiklangach ishlov berishda davom etiladi
Bu yerda ham murosa bor: navbat orqali ishlov berish, natijani DARHOL bilishni QIYINLASHTIRADI (foydalanuvchi "video tayyor bo'ldimi" deb ALOHIDA so'rashi yoki bildirishnoma KUTISHI kerak), va agar navbat O'ZI o'ta OG'IRLASHIB ketsa, vazifalar KECHIKISHI mumkin. Shuning uchun message queue — HAR bir vazifa uchun emas, balki DARHOL javob shart BO'LMAGAN, og'ir yoki KO'P vaqt oladigan ishlar uchun tanlanadi.
Key Takeaway
Key Takeaway:
Message queue — vazifani darhol bajarish o'rniga navbatga qo'yib, xizmatlarni bir-biridan ajratadi, trafik cho'qqisini so'rib oladi va vaqtinchalik ishdan chiqishlarga chidamli qiladi. Build a Task Queue kursida bitta jarayon ichida qurgan g'oya — tizim darajasida, alohida, diskka yozadigan xizmat sifatida ishlaydi.
NEXT UP
Rate Limiting as a System-Level Concern