Kofe Al
  • Creators
  • Blog
  • FAQ
  • en English
    • en Azərbaycan
    • en Türkce
    • en Русский
  • Sign in Join now
Kofe Al
  • en English
    • en Azərbaycan
    • en Türkce
    • en Русский

Do what you love, gain support from your audience!

  • en English
    • en Azərbaycan
    • en Türkce
    • en Русский
    • Creators
    • Blog
    • FAQ
Sign in Join now
Follow us
Məhəbbət Babayeva
  • RabbitMQ
    Məhəbbət Babayeva
  • 262 Views
  • 24.12.2023
  • 4 min read

RabbitMQ

RabbitMQ mesaj brokeri haqqında

RabbitMQ

Mesaj quyruqları sistemləri

Bu, ümumiyyətlə, sıx trafik axını olan tətbiqlərdə lazımdır. Bu strukturların köməyi ilə bir tətbiqdən alınan mesajın yeri gələndə digər tətbiqə ötürülməsini təmin edə bilərik.Tətbiqlərimizdə dərhal görülən işlərə həmişə ehtiyacımız olmaya bilər. Belə hallarda Message Queue strukturlarından istifadə etməklə dərhal yerinə yetirilməsi lazım olmayan işlər növbə strukturunda yerləşdirilir.

RabbitMQ nədir?

RabbitMQ növbəli mesaj sistemidir,open sourche-dir.Mesaj sistemləri, müxtəlif sistemlərin bir-biri ilə məlumatlarını mübadilə etməsinə kömək edir.RabbitMQ müxtəlif proqramlar və platformalar arasında asinxron mesajlaşma imkanı yaradır.Alternativləri Apache Kafka, Msmq, Microsoft Azure Service Bus, Kestrel, ActiveMQ kimi mesaj sistemləridir.

RabbitMQ virtual runtime’da çalışır və erlang dili ilə yazılmışdır.

1. Publisher — Mesajları göndərən sistem və ya servisdir. Publisher vasitəsi ilə mesajlar müəyyən Exchange’ə yönləndirilir.

2. Exchange: Funksiyası isə mesajı əlaqəli Routing Key‘ə görə əlaqəli Queue‘ya kateqoriyalara ayıraraq  yönləndirməktir . Bu kateqoriyaları da Exchange Type olaraq adlandırırıq

 Exchange özünün bir neçə növləri vardır.

· Direct exchange: Ediləcək işlərə görə bir routing key təyin olunur və buna görə əlaqəli direct exchange ilə məqsədə ən uyğun queue göndərilir. Consumer bu Queue’yə görə işini görür.

· Fanout exchange: Burda routing key’in bir vacibliyi yoxdur. Bütün Queue’lərə mesajların kopyalarını göndərir. Routing Key istifadə olunanları isə göndərməyib göz ardı edir.  Bu növ mesajların birdən çox alıcı tərəfindən alınacağı təqdirdə istifadə edilir.Məsələn, oireal-time idman xəbərləri kimi dərclərdə fanout exchange işlədilir.

· Topic Exchange:  Burada verilən Routing Key’lərə uyğun olaraq fərqli fərqli Queue’lərə yazmaq olur. Routing Key’lər bir və ya birdən çox “wildcard” simvolu istifadə edib bir neçə Queue yə yönləndirilə bilər. ”*” və ya “#” ilə hər hansısa qrupa və ya bütün mesajlara çatmaq olur. Bu növ, mesajı fərqli-fərqli kateqoriyalara ayırmaq lazım olduqda istifadə olunur.

· Headers Exchange: Bu exchange-də routing key’i işlətməz və message headers’dakı bir neçə xüsusiyyətlər və identifikasiyası ilə düzgün queue’yə göndərilir. Header üzərindəki attributlar ilə queue üzərindəki attributların hamısının dəyərlərinin bir-birini tutması lazımdır.

 3. Queue — Mesajın müvəqqəti olaraq saxlandığı depodur. Ve ya  növbədir

4. Consumer — Mesajları alan və lazımi işləri üzərində tətbiq edən sistem və ya servisdir.

FİFO -RabbitMQ’da gedən mesajların işləmə sırası “first in first out”, yəni, ilk daxil olan ilk çıxar şəklindədir.

Routing key Mesajları müəyyən Exchange’dən müəyyən Queue’yə yönləndirmək üçün istifadə olunan bir parametrdir başqa cur Binging Key olaraq adlandırılır

Channel Mesajın Publisher’dən RabbitMQ’yə göndərilməsi və RabbitMQ’dən Consumer’ə göndərilməsi zamanı Channel anlayışından istifadə olunur. Bir sözlə Channel vasitəsi ilə RabbitMQ’lə əlaqə yaradaraq mesaj göndərib ala bilərik. Hər Channel, bir Queue və ya Exchange ilə əlaqələndirilib müəyyən kanal üzərindən göndərilə bilər.

Niyə işlətməliyik?

Hər şey çoxyönlü bir mühit yaratmaq üçündür. İşləri asenxron bir şəkildə həyata keçirərək, həm proyektimizi işlədən insanları gözləmə müddəti maliyyətindən qutarmaq, həm də server üzərindəki paralel proses maliyyətinin minimuma endirilməsi üçündür. 

Quraşdırılmasına başlamadan əvvəl Erlang yükləyirik

Erlang dilini quraşdırdıqdan sonra RabbitMQ qurasdırmağa başlayırıq. [rabbitmq.com/install-windows.html]

Command Prompt –u açırıq. Orada “C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.0\sbin\” yoluna daxil olub rabbitmq-plugins.bat enable rabbitmq_management komandasını işlədirik.

Tətbiq sahələri

Mikroservis Arxitekturası

RabbitMQ mikroservis arxitekturasında müstəqil xidmətlər arasında əlaqəni asanlaşdırmaq üçün istifadə olunur. Hər bir mikroservis öz funksionallığını həyata keçirir və digər mikroservislərlə asinxron əlaqə yaratmaq üçün RabbitMQ-dan istifadə edə bilər. Bu, xidmətlər arasında asılılığı azaldır və sistemdə miqyaslılığı artırır.

İnteqrasiya Ssenariləri

Satış sifarişi yaradıldıqda, RabbitMQ bu məlumatı maliyyə sisteminə ötürmək və ya məhsul inventarının yenilənməsini təmin etmək üçün istifadə edilə bilər.

Other posts

forEach-də döngünü qıra bilərik?

forEach-də döngünü qıra biləri

  • 264 Views
  • 23.02.2024
  • 1 min read
Bildiyimiz kimi forEach metodu javascriptdə massivlər üzərində iterasiya etmək üçün ən çox istifadə olunan metoddur.forEach massivdəki hər element üçü ...
Public
More
Your Front-end journey. Day 8.

Your Front-end journey. Day 8.

  • 339 Views
  • 08.08.2023
  • 1 min read
Front-end təcrübələrimi paylaşaraq, bu yolda irəliləmək istəyənlərə addım-addım nə etməli olduqlarını izah edəcəm. ...
Public
More
kofe.al

We are always looking for talented and creative people. Don not hesitate to introduce yourself!

Features
  • Donations
  • Membership
  • Shop
  • QR codes
  • Integrations
Integrations
  • Facebook
  • Instagram
  • TikTok
  • Telegram
  • Wordpress
Kofeal
  • About us
  • Terms
  • Privacy policy

Copyright © 2025 a BONPARA project. All rights reserved.