تعریف و اتصال Queues به Exchangeها

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/06/25
  • تعداد بازدید: 2

در RabbitMQ، Queueها محل ذخیره پیام‌ها هستند و Exchangeها مسئول مسیریابی پیام‌ها به صف‌ها می‌باشند. برای هدایت پیام‌ها به صف‌های مناسب، باید Queues را تعریف کرده و آن‌ها را به Exchange متصل کنیم.

تعریف Queue

ابتدا باید صف مورد نظر را ایجاد کنیم. اگر صف از قبل وجود نداشته باشد، با استفاده از دستور queue_declare ایجاد می‌شود:

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

# تعریف صف
channel.queue_declare(queue='task_queue', durable=True)

ویژگی durable=True باعث می‌شود صف حتی در صورت ری‌استارت سرور حفظ شود.

تعریف Exchange و اتصال Queue

پس از ایجاد صف، باید Exchange مناسب را تعریف کرده و Queue را به آن متصل کنیم. این اتصال با استفاده از Binding انجام می‌شود:

# تعریف Exchange از نوع Direct
channel.exchange_declare(exchange='direct_logs', exchange_type='direct')

# اتصال Queue به Exchange با یک Routing Key
channel.queue_bind(exchange='direct_logs',
                   queue='task_queue',
                   routing_key='task_key')

نکات مهم

  • هر Queue می‌تواند به چندین Exchange متصل شود و برعکس.
  • Bindingها مشخص می‌کنند که پیام‌های با چه Routing Key به کدام Queue هدایت شوند.
  • Queueها می‌توانند موقت یا پایدار باشند و این ویژگی روی رفتار آنها در زمان ری‌استارت سرور تاثیر می‌گذارد.

نمونه جریان پیام


Producer ---> Exchange ('direct_logs') ---routing_key='task_key'---> Queue ('task_queue') ---> Consumer

جمع‌بندی

تعریف Queue و اتصال آن به Exchange با استفاده از Binding و Routing Key اساس مسیریابی پیام‌ها در RabbitMQ است. با تنظیم صحیح این عناصر، پیام‌ها به صف‌های مناسب هدایت شده و سیستم پیام‌رسانی مطمئن و مقیاس‌پذیر ایجاد می‌شود.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.