Message Broker (Queues)

Message Broker (Queues)

Shukurali Rezamonov

Message broker ni gapirishdan oldin keling Middleware haqida gaplashsak. Tasavvur qiling sizda bir nechta tizimlar (application) bor va ular bir biri bilan ma'lumot almashishi uchun quyidagicha bog'lanishi mumkin:

va kurib turganingizdek 3 ta tizim bor ular urtasidagi bog'lanishlar soni ham 3 ta ,tizimlarga misol qilib quyidagilarni aytishimiz mumkin:


Endi sizda tizimlar kupayishi mumkin ya'ni 5 ta yoki 10 balki unda ortiq ham bulishi mumkin . ularni bir biriga bog'lash sizda quyidagicha holat bulishi mumkin:

ya'ni bu holatda tarmoqdagi tizimlar soni 10 ta yetgan holatda ularni bir biriga bog'lanish ya'ni ma'lumot almashish kanallari soni 45 ta yetadi. Bunday holatda siz shu 10 lab tizimlar orasida xilma xil formatdagi ma'lumotlarni almashishing albatta murakkablashib ketadi.

Bunday holda to'g'ri yechim ya'ni bir nechta tizimlar orasida gi bog'lanishni to'gri yulga quyish uchun Middleware dan foydalanishimiz kereak buladi.

Middleware bu - bir nechta tizimlar ya'ni hali bir biri haqida ma'lumotga ega bulmagan bir birini borligini xatto bilmaydigan tizimlar urtasida ma'lumot almashish ni yulga quyish uchun foydalaniladigan dasturiy taminot va uzimizda o'rtakash deb nomlasak buladi.

Middleware ni afzalligi shundaki unga bog'langan tizimlar bir birini borligi haqida hech qanday tasavvurga ega bulmasligi mumkin.

Misol uchun tepdagi rasmda App #1 tizim dagi dastur Middlewarening narigi tomonidagi App #6 tizimida qanday dastur ishlayotgani haqida bilmaydi, buni esa Middleware hal qiladi. Ya'ni Middleware uziga kelib tushgan ma'lumotlar asosida asosida qaysi tizimga qanday formatda ma'lumotni yetkazishni hal qiladi.

Middleware ning bir nechta turlari bor:

1. Message Brorker

2. RPC -asosidagi tizimlar

3. Object Request Broker

4. Transaction Processing Monitor


Biz birinchi turi ya'ni Message Borker (Messaging Middleware) yoki Message Queues ham deyish mumkin ,va biz hozir shu haqida gaplashamiz.

Message Broker Bir nechta tizimlar urtasida xabar almashish nazarda tutiladi. Messaging tizimlarda xabarni junatuvchi Producer uni qabul qiluvchi Consumer deyiladi. Ularning urtasida ma'lumotni yetkazib berishni Message Broker uz zimmasiga oladi. Message Broker ga yuborilgan message lar undagi queue(navbat) da saqlanadi va xabarni oluvchi hohlagan vaqt uni message Brokerdan surab olishi mumkin.


Keling bir misol kuramiz !

Tasavvur qiling siz mahalliy pochta xizmati orqali xat yuboryapsiz onangizga. Bu yerda siz nimalar qilasiz:

  1. Xat yozasiz
  2. Eng yaqin pochtaxonaga borib uni yuborasiz
  3. Pochta ofisserlari xatlarni sortirovka qiladi pochta kodi orqali
  4. Pochtachi xatni onganizga yetkazib beradi
  5. Pochtaxona xat muvaffaqiyatli yetib borganini tasdiqlaydi


Endi Message queue qanday ishlashligi ni ham kurib utamiz

  1. Publisher (chop qiluvchi) ishchi xabarni konstruktsiyalaydi ya'ni formatlaydi
  2. Publisher xabarni publish qiladi Message Queue Exchange(o'rtakach) ga
  3. MQ Broker xabarni belgilangan navbat qoidasi buyicha xabarni queue ga yunaltiradi
  4. Xabar consumer tomonidan qabul qilinadi va qayta ishlanadi
  5. Consumer xabarlar navbati(MQ) muvaffaqiyatli yetgazib berilganini tan oladi.


Odatda Producer Message Broker ga xabarni quyidagicha elon qiladi

{"action": "delete_user", "userId": "john_doe"}


Va Consumer xabarni qabul qiladi va quyidagidek ishlarni bajaradi

  1. Foydalanuvchini uchirish
  2. Foydalanuchi emailiga uchirilganlig yoki oxirgi xabarini yuborish
  3. va shu kabilarni ...


Shuningdek Message Broker larni turi ko'p, hozirgi kunda

  1. RabbitMq
  2. Kafka
  3. ActiveMq
  4. MSMQ
  5. IBM MQ

shu kabi Message Broker lar ishlatiladi.


Keyingi maqolamda RabbitMq haqida yozmoqchiman In Shaa Alloh



Vaqtingizni ajratganingiz uchun Rahmat.
Foydali buldi degan umiddaman


Muallif: @Shukurali_Rezamonov

Links: Linkedin , Telegram

Report Page