برای طرح سوال و دسترسی به آموزش ها  کانال ما در تلگرام بپویندید  
rabbitmq

رابیت‌اِم‌کیو (RabbitMQ) در لاراول برای صف (queue)

رابیت‌اِم‌کیو (RabbitMQ) چیست؟

رابیت‌اِم‌کیو (RabbitMQ) نرم‌افزاری است که یک سیستم پیام‌رسانی را برای فرستادن و دریافت پیام‌ها بین برنامه‌ها یا سرویس‌های مختلف فراهم می‌کند. این نرم‌افزار از استاندارد AMQP (Advanced Message Queuing Protocol) برای برقراری ارتباط بین مؤلفه‌های مختلف یک برنامه یا برنامه‌های مختلف استفاده می‌کند.

به طور ساده، RabbitMQ به عنوان یک واسط بین قسمت‌های مختلف یک سیستم که نیاز به تبادل داده دارند، عمل می‌کند و این امکان را به آنها می‌دهد که به یکدیگر به صورت قابل اعتماد و مقیاس‌پذیر پیام بفرستند و از همان طریق پیام دریافت کنند. این نرم‌افزار ارتباط ناهمزمان بین بخش‌های مختلف یک سیستم را ممکن می‌کند و آنها را از هم جدا می‌کند و مستقل‌تر می‌کند.

RabbitMQ از مدل صف برای ذخیره پیام‌ها و تضمین ارسال آن‌ها استفاده می‌کند. زمانی که یک پیام به RabbitMQ فرستاده می‌شود، آن به یک صف اضافه می‌شود و سپس RabbitMQ آن را به برنامه گیرنده تحویل می‌دهد. این رویکرد اطمینان می‌دهد که پیام‌ها از دست نمی‌روند و حتی اگر گیرنده در زمانی که پیام فرستاده شد، در دسترس نبوده باشد، می‌تواند پیام را دریافت کند.

RabbitMQ همچنین ویژگی‌هایی مانند مسیریابی، اولویت‌بندی و تأیید پیام را نیز پشتیبانی می‌کند تا مدیریت ارسال پیام‌ها را بهبود بخشید و اطمینان حاصل کند که پیام‌ها به درستی تحویل داده می‌شوند.

نصب RabbitMQ

 برای استفاده از RabbitMQ در سرور خود، شما نیاز به نصب RabbitMQ Server دارید.

برای نصب RabbitMQ Server بر روی سیستم عامل شما، می‌توانید به سایت رسمی RabbitMQ به آدرس https://www.rabbitmq.com/install.html مراجعه کنید و دستورات نصب مربوط به سیستم عامل خود را دنبال کنید.

در مورد سیستم‌عامل لینوکس، شما می‌توانید با استفاده از مدیر بسته مورد علاقه‌تان مانند apt-get یا yum برای نصب RabbitMQ Server اقدام کنید.

بعد از نصب RabbitMQ Server، شما باید از طریق کنسول مدیریتی RabbitMQ به آن دسترسی داشته باشید. برای این کار، شما باید از طریق مرورگر خود به آدرس http://localhost:15672 متصل شده و با استفاده از نام کاربری و رمز عبور پیش‌فرض guest/guest، وارد محیط مدیریتی شوید.

در این محیط مدیریتی، شما می‌توانید ایجاد کنترل‌گرها و صف‌های مورد نیاز خود را انجام دهید. بعد از ایجاد صف‌ها و کنترل‌گرهای مورد نیاز، شما می‌توانید از آن‌ها در برنامه‌های خود استفاده کنید.

RabbitMQ در لاراول

به عنوان یک توسعه‌دهنده PHP با تجربه در Laravel و مهندسی پشتیبانی، RabbitMQ می‌تواند برای ساختن سیستم‌های قابل مقیاس و پایدار که قادر به پردازش تعداد زیادی پیام و تراکنش هستند، مفید باشد. این نرم‌افزار می‌تواند به تفکیک بخش‌های مختلف یک برنامه کمک کند، سیستم را در تعمیر و توسعه آسان تر کند و عملکرد و پایداری کلی سیستم را بهبود بخشد.

برای استفاده از RabbitMQ در لاراول، شما باید اطلاعات اتصال به RabbitMQ را در فایل .env تنظیم کنید.

شما می‌توانید در فایل .env خطوط زیر را اضافه کنید:

RABBITMQ_HOST=127.0.0.1
RABBITMQ_PORT=5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
RABBITMQ_VHOST=/

این خطوط شامل اطلاعات اتصال به RabbitMQ است، از جمله آدرس هاست و پورت RabbitMQ، نام کاربری و رمز عبور، و همچنین نام VHost است که می‌خواهید از آن استفاده کنید.

در صورتی که نیاز دارید از پورت و نام VHost دیگری استفاده کنید، می‌توانید این خطوط را با اطلاعات مورد نظر خود ویرایش کنید.

در پروژه‌های Laravel، این اطلاعات اتصال به RabbitMQ از طریق پکیج php-amqplib برای ایجاد اتصال به RabbitMQ استفاده می‌شود. به همین دلیل، شما نیازی به تنظیمات بیشتری برای استفاده از RabbitMQ در پروژه‌های Laravel خود ندارید.

اجرای صف

سپس با استفاده از دستورات زیر، می‌توانید صف‌ها و پیام‌های مورد نیاز خود را تعریف کنید:

  • php artisan queue:table: جدول‌های مورد نیاز برای RabbitMQ را در پایگاه داده شما ایجاد می‌کند.
  • php artisan queue:work --queue=queue-name: صف مورد نظر را با نام queue-name شروع به کار می‌کند و پیام‌های آن را پردازش می‌کند.
  • php artisan queue:listen: همانند queue:work عمل می‌کند، اما به صورت بی‌صدا برای مانیتورینگ و راه‌اندازی بهتر سیستم‌های تولیدی مورد استفاده قرار می‌گیرد.
  • php artisan queue:restart: صف‌ها را متوقف کرده و دوباره آن‌ها را شروع به کار می‌کند.

همچنین شما می‌توانید از دستور php artisan queue:failed برای مدیریت پیام‌های ناموفق و دستور php artisan queue:retry برای تلاش مجدد برای پردازش پیام‌های ناموفق استفاده کنید.

به طور کلی، استفاده از RabbitMQ در لاراول بسیار ساده است و با توجه به اهمیت ارسال و دریافت پیام‌ها در برنامه‌های مختلف، استفاده از آن می‌تواند بهبود و کمک به مدیریت منابع برنامه شما باشد.


انتشار

در

,

توسط

برچسب‌ها:

نظرات

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *