Skip to content

Sinxron va Asinxron yondashuv

Tizimning yaxshi va barqaror ishlashi ko'p jihatdan uning boshqa tizimlar bilan yaxshi bog'lanish ro'li juda muhim. Foydalanuvchilar ma'lumotlarni bir nechta xizmatlardan olishi, mobil ilovadan tizimga ma'lumot qo'shilishi yoki fayllarni qayta ishlash uchun fayl yozish xizmatidagi navbatlar bo'lsin, barchasini ishlab chiqishda qaysi yondashuvdan foydalanish muhimligi haqida savol paydo bo'ladi. Asinxron bo'lsinmi yoki Sinxron? Bu yerda to'g'ri tanlov qilish, tizimni o'z maromida ishlashiga sabab bo'ladi.

Sinxron - bu hammaga tanish bo'lgan mexanizm. Bir xizmat boshqa xizmatdan ma'lumot olish uchun so'rov yuboradi va javob kelishini kutadi, javob kelganidan so'ng keyingi qadamga o'tib ishini davom etadi. Bu usul oddiy va oldindan aytib bo'ladigan kuzatish mumkin bo'lgan mexanizm. Lekin yuborilgan so'rov uzoq vaqtdan so'ng natijasini olsa bu bunga bog'liq boshqa qismlar ishiga sezilarli darajada o'z ta'sirini ko'rsatadi.

Asinxron yondashuv esa yuqoridagi mumkin bo'lgan muamolarga yechim taklif qiladi. Agar asinxron mexanizm yordamida boshqa xizmatlar bilan ulanishlarni amalga oshirsak, biz yuborgan so'rov ko'p vaqt olishi mumkin, lekin asinxron mexanizm bizni so'rovimizni navbatga qo'yib, keyingi bosqichga o'tadi va ishini davom etadi. Bu bilan biz so'rovni tezligini oshirmadik, balki sekin ishlashi mumkin bo'lgan qismga moslashdik. Asinxron yondashuv bilan muamoga yechim berdik, lekin bu yondashuv muamolarni aniqlashimiz, tahlil qilishimiz va boshqarishimizni qiyinlashtiradi, chunki navbatga qo'yilgan vazifa orqa fonda(background) ishlaydi. Biz bu jarayonni nazorat qilolmaymiz.

Info

Biror yondashuv mutlaqo afzal emas. Ular har xil ehtiyojlarga xizmat qiladi.

Qachon qaysi yondashuvni tanlash kerak?

Tanlov tizim ehtiyojlariga bog'liq. Quyidagi holatlarda sinxron muloqot afzal bo'ladi:

  • Foydalanuvchiga tez javob qaytarish kerak bo'lgan tizimlarda.
  • Javob darhol kerak bo'lgan xizmatlarda(masalan: foydalanuvchi tizimga login qilishi).

Asinxron muloqot esa quyidagi holatlarga mos keladi:

  • Uzoq vaqt talab qiladigan jarayonlarda, masalan e-mail yuborish, log yozish, fayllarni qayta ishlash.
  • Yuqori yuklama ostida ishlovchi tizimlarda
  • Mustaqil va uzluksiz ishlash muhim bo'lgan tizimlarda (microservices)

Sinxron yondashuvda asosida ishlaydigan protokollar va texnologiyalar :

  • HTTP / REST
  • gRPC(ikkalsini ham qo'llab quvatlaydi)
  • SOAP

Asinxron yondashuvlar

  • Message Queue (RabbitMQ, Kafka, Amazon SQS)
  • Webhook'lar
  • Event-driven arxitektura (EventBridge, SNS, Pub/Sub)

Sinxron va Asinxron yondashuvlar bir-birini to'ldiruvchi yondashuvlar. Har biri o'ziga xos afzallik va cheklovlarga ega. Muhimi tizim talablarini chuqur tushunib, mos strategiyani tanlash. Ba'zan bu ikkalasini birlashtirib, muvozanatli yechim taklif qilishga ham to'g'ri keladi.