راهنمای RabbitMQ پایتون

Jul 1, 2024

معرفی RabbitMQ با پایتون

مرور کلی

  • به سری ویدیوهای RabbitMQ خوش آمدید.
  • ویدیوی قبلی: اصول و اصطلاحات رایج RabbitMQ.
  • این ویدیو: نوشتن یک برنامه ساده RabbitMQ با استفاده از پایتون.
  • گزینه‌های دیگر: برای .NET و C# به ویدیوی بعدی مراجعه کنید.

هدف

  • ارسال یک پیام به بروکر RabbitMQ از طریق تولید‌کننده.
  • مصرف آن پیام توسط مصرف‌کننده.
  • تولید‌کننده و مصرف‌کننده از طریق یک صف با هم تعامل دارند.
  • صف در این مثال letterbox نام دارد.

مفاهیم RabbitMQ

  • صف: مانند یک صندوق پستی برای مصرف‌کننده عمل می‌کند.
  • Exchange: پیام‌ها باید قبل از رسیدن به صف‌ها از طریق exchanges عبور کنند.
  • Default Exchange: با یک رشته خالی نشان داده می‌شود.

مراحل ایجاد یک تولید‌کننده و مصرف‌کننده RabbitMQ

کتابخانه مورد نیاز

  • نصب کتابخانه Pika: pip install pika.

تولید‌کننده

  1. ایجاد فایل جدید: producer.py
  2. وارد کردن کتابخانه Pika: import pika
  3. ایجاد پارامترهای اتصال:
    connection_parameters = pika.ConnectionParameters('localhost')
    
  4. برقراری اتصال:
    connection = pika.BlockingConnection(connection_parameters)
    
  5. ایجاد کانال:
    channel = connection.channel()
    
  6. اعلام صف:
    channel.queue_declare(queue='letterbox')
    
  7. ارسال پیام:
    message = 'Hello, this is my first message'
    channel.basic_publish(exchange='', routing_key='letterbox', body=message)
    print(f"Sent message: {message}")
    
  8. بستن اتصال:
    connection.close()
    

مصرف‌کننده

  1. ایجاد فایل جدید: consumer.py
  2. وارد کردن کتابخانه Pika: import pika
  3. برقراری اتصال و کانال:
    connection_parameters = pika.ConnectionParameters('localhost')
    connection = pika.BlockingConnection(connection_parameters)
    channel = connection.channel()
    channel.queue_declare(queue='letterbox')
    
  4. تعریف تابع Callback:
    def on_message_received(ch, method, properties, body):
        print(f"Received new message: {body}")
    
  5. مصرف پیام‌ها:
    channel.basic_consume(queue='letterbox', on_message_callback=on_message_received, auto_ack=True)
    print("Started consuming")
    channel.start_consuming()
    

اجرای کدها

  • اجرای مصرف‌کننده: python consumer.py
  • تایید در رابط کاربری RabbitMQ: اتصال و ایجاد صف.
  • اجرای تولید‌کننده: python producer.py
  • بررسی خروجی: بررسی ترمینال برای پیام‌های ارسال و دریافت شده.
  • ماندگاری پیام: اگر تولید‌کننده بدون مصرف‌کننده اجرا شود، پیام تا زمان مصرف در صف باقی می‌ماند.

ویدیوهای بعدی

  • ویدیوی بعدی: همان کد با استفاده از .NET و C#.
  • در آینده: نگاه جزئی‌تر به پروتکل AMQP.

نتیجه‌گیری

  • لینک کد در GitHub موجود است.
  • تشویق به لایک و اشتراک‌گذاری برای دریافت محتوای بیشتر درباره RabbitMQ.
  • پیش‌نمایش محتوای آتی.

ممنون از تماشای شما!