ارسال و دریافت پیام‌ها

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

در RabbitMQ، ارسال و دریافت پیام‌ها اساس ارتباط بین سیستم‌ها و سرویس‌ها را تشکیل می‌دهد. این فرآیند شامل تولید پیام توسط Producer، هدایت آن توسط Exchange، ذخیره‌سازی در Queue و دریافت توسط Consumer است.

ارسال پیام‌ها (Producer)

برای ارسال پیام، ابتدا باید به RabbitMQ متصل شویم، صف یا Exchange مناسب را مشخص کنیم و سپس پیام را ارسال کنیم. نمونه کد Python با استفاده از pika:

import pika

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

# ایجاد صف
channel.queue_declare(queue='task_queue')

# ارسال پیام
channel.basic_publish(exchange='',
                      routing_key='task_queue',
                      body='پیام نمونه')

print("پیام ارسال شد")
connection.close()

دریافت پیام‌ها (Consumer)

Consumer پیام‌ها را از صف دریافت و پردازش می‌کند. نمونه کد Python:

import pika

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

# اطمینان از وجود صف
channel.queue_declare(queue='task_queue')

# تعریف تابع callback برای پردازش پیام‌ها
def callback(ch, method, properties, body):
    print(f"پیام دریافت شد: {body.decode()}")

# ثبت Consumer
channel.basic_consume(queue='task_queue',
                      on_message_callback=callback,
                      auto_ack=True)

print('در انتظار پیام‌ها...')
channel.start_consuming()

نکات مهم

  • استفاده از auto_ack=True باعث می‌شود پیام پس از دریافت به طور خودکار تأیید شود، اما برای سیستم‌های حساس بهتر است از تایید دستی استفاده شود.
  • پیام‌ها می‌توانند شامل متن، JSON یا داده‌های باینری باشند.
  • ارسال و دریافت پیام‌ها می‌تواند به صورت همزمان با چندین Producer و Consumer انجام شود.

جمع‌بندی

ارسال و دریافت پیام‌ها در RabbitMQ ساده و انعطاف‌پذیر است. با ترکیب Producer، Consumer، Queue و Exchange می‌توان سیستم‌های پیام‌رسانی قابل اعتماد و مقیاس‌پذیر ایجاد کرد که در پروژه‌های توزیع‌شده کاربرد گسترده‌ای دارند.

ثبت دیدگاه


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

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


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