پرش به مطلب اصلی

Rabbitmq

ربیت یه (Message Broker)** ه که به برنامه‌های مختلف کمک میکنه به صورت غیرمستقیم و قابل اطمینان با هم ارتباط برقرار کنند. مثل یک پستچی هوشمند بین برنامه‌ها!


**۱. Exchange

  • فلسفه وجودی:

    • جداسازی فرستنده (Producer) از مقصد (Queue).
    • اProducer فقط پیام را به Exchange می‌فرستد بدون دانستن اینکه پیام به کدام Queue(ها) می‌رود.
    • امکان پیاده‌سازی الگوهای پیچیدهٔ مسیریابی (مستقیم، فان‌اوت، موضوعی و...).
  • مثال:
    مثل فرستادن نامه به اداره پست بدون مشخص کردن آدرس مقصد، اگه پست نباشه خودمون باید آدرس گیرنده هارو بدونیم و هر موقع گیرنده ها آدرسش عوض میشه باید همه آپدیت بشن. از طرفی سیاست های ارسال پیام هم مشخص میشه که به یه صف یا چندین صف ارسال بشه


**۲. Queue

  • فلسفه وجودی:

    • ذخیره‌سازی پیام‌ها تا زمان پردازش توسط Consumer.
    • تضمین می‌کند پیام‌ها در صورت قطعی Consumer از بین نروند.
    • امکان مدیریت بار ترافیک (مثلاً چند Consumer از یک Queue بخوانند).
  • مثال:
    مثل صندوق پستی خونه که نامه‌ها را نگه میداره تا شما بردارید.


**۳. Routing Key

  • فلسفه وجودی:

    • **تعیین مقصد پیام‌ها در Exchangeهای مبتنی بر مسیریابی **
    • امکان فیلتر کردن پیام‌ها بدون نیاز به ایجاد صف‌های متعدد.
    • انعطاف‌پذیری در تغییر مسیریابی بدون تغییر کد Producer.
  • مثال:
    برای موقعی هستش که میخوایم از یه صف برای کارهای مختلف استفاده کنیم مثلا ارسال لاگ ایمیمل و ارسال ایمیل، routing key باعث میشه یه حالت دسته بندی داشته باشیم