Azure Service Bus چیست؟
یک Message Broker ابری در Azure برای ارتباط غیرهمزمان (Asynchronous) و قابلاعتماد بین سرویسها و Microserviceها.
چرا مهم است؟
در معماری Microservices، سرویسها نباید مستقیم و همزمان به هم وابسته باشند — Service Bus این وابستگی را باز میکند و پیامرسانی قابلاعتماد فراهم میکند.
Azure Service Bus چیست؟
Message Broker سرویس Azure که بین سرویسها و اپلیکیشنها ارتباط غیرهمزمان (Asynchronous) برقرار میکند تا نیازی نباشد سرویسها مستقیم و همزمان به هم متصل باشند.
چرا از Azure Service Bus استفاده کنیم؟
کاهش وابستگی و Loose Coupling · افزایش مقیاسپذیری (Scalability) · تحمل خطا (Fault Tolerance) · پردازش غیرهمزمان · تضمین تحویل پیام (Reliable Messaging)
اجزای اصلی
Queue — ارتباط One-to-One: Producer → Queue → Consumer؛ هر پیام فقط توسط یک Consumer دریافت میشود.
Topic & Subscription — ارتباط One-to-Many (Publish/Subscribe): یک Producer → یک Topic → چند Subscription (هر Subscription نسخه مستقلی از پیام دریافت میکند).
Delivery Modes
PeekLock (پیشفرض) — پیام قفل میشود و باید بعد از پردازش Complete شود؛ در صورت خطا دوباره قابل دریافت است. ReceiveAndDelete — پیام بلافاصله حذف میشود؛ سریعتر ولی مناسب دادههای غیرحیاتی.
قابلیتهای مهم
- Dead Letter Queue (DLQ) — اگر پیام چند بار پردازش نشود یا مهلتش تمام شود، به یک Dead Letter Queue منتقل میشود.
- Message Sessions — برای پردازش پیامهای مرتبط به ترتیب (FIFO).
- Duplicate Detection — جلوگیری از دریافت دوبار یک پیام تکراری.
- Scheduled Messages — ارسال پیام در آینده.
- Message TTL — هر پیام میتواند زمان انقضا داشته باشد؛ بعد از آن به DLQ منتقل میشود.
- Retry — در صورت خطای موقت، بدون از دست رفتن پیام دوباره تلاش میکند.
Security
Azure AD Authentication · Shared Access Signature (SAS) · Role-Based Access Control (RBAC) · Encryption
سناریوهای رایج
ارتباط بین Microservices · Order Processing · Payment Processing · Email Queue · Notification Service · Inventory Update · Event-Driven Architecture
مزایا و معایب
مزایا: Reliable Messaging · High Availability · Scalability · Retry · Dead Letter Queue · Publish/Subscribe · Ordering و Session · Transaction Support معایب: هزینه برای Queueهای پرترافیک بیشتر میشود · افزایش پیچیدگی معماری · نیاز به مانیتورینگ و مدیریت بیشتر پیامها
نکته کلیدی: Queue یعنی یک Producer به یک Consumer (One-to-One)؛ Topic یعنی Publish/Subscribe (One-to-Many)؛ Dead Letter Queue محل نگهداری پیامهای ناموفق است؛ Azure Service Bus برای معماریهای Microservices و Event-Driven مناسب است.
خلاصه
- Azure Service Bus یک Message Broker برای ارتباط غیرهمزمان و قابلاعتماد بین سرویسهاست.
- Queue برای ارتباط One-to-One و Topic/Subscription برای Publish/Subscribe (One-to-Many) استفاده میشود.
- Dead Letter Queue، Retry و Message Sessions قابلیتهایی هستند که تحویل پیام را قابلاعتماد میکنند.
