Rabbitmq
ربیت یه (Message Broker)** ه که به برنامههای مختلف کمک میکنه به صورت غیرمستقیم و قابل اطمینان با هم ارتباط برقرار کنند. مثل یک پستچی هوشمند بین برنامهها!
**۱. Exchange
-
فلسفه وجودی:
- جداسازی فرستنده (Producer) از مقصد (Queue).
- اProducer فقط پیام را به Exchange میفرستد بدون دانستن اینکه پیام به کدام Queue(ها) میرود.
- امکان پیادهسازی الگوهای پیچیدهٔ مسیریابی (مستقیم، فاناوت، موضوعی و...).
-
مثال:
مثل فرستادن نامه به اداره پست بدون مشخص کردن آدرس مقصد، اگه پست نباشه خودمون باید آدرس گیرنده هارو بدونیم و هر موقع گیرنده ها آدرسش عوض میشه باید همه آپدیت بشن. از طرفی سیاست های ارسال پیام هم مشخص میشه که به یه صف یا چندین صف ارسال بشه
**۲. Queue
-
فلسفه وجودی:
- ذخیرهسازی پیامها تا زمان پردازش توسط Consumer.
- تضمین میکند پیامها در صورت قطعی Consumer از بین نروند.
- امکان مدیریت بار ترافیک (مثلاً چند Consumer از یک Queue بخوانند).
-
مثال:
مثل صندوق پستی خونه که نامهها را نگه میداره تا شما بردارید.
**۳. Routing Key
-
فلسفه وجودی:
- **تعیین مقصد پیامها در Exchangeهای مبتنی بر مسیریابی **
- امکان فیلتر کردن پیامها بدون نیاز به ایجاد صفهای متعدد.
- انعطافپذیری در تغییر مسیریابی بدون تغییر کد Producer.
-
مثال:
برای موقعی هستش که میخوایم از یه صف برای کارهای مختلف استفاده کنیم مثلا ارسال لاگ ایمیمل و ارسال ایمیل، routing key باعث میشه یه حالت دسته بندی داشته باشیم