برنامه نویسی

راهنمای گام به گام برای نصب RabbitMQ بر روی سرور مجازی

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

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

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

https://www.youtube.com/watch؟v=hpqvwlh7pm0


چرا RabbitMQ را انتخاب کنید؟

RabbitMQ به دلیل طیف گسترده ای از ویژگی ها و پشتیبانی جامعه ، یک راه حل پیام رسانی ارجح برای بسیاری از توسعه دهندگان ، مدیران سیستم و DevOps است:

  • عملکرد قوی: RabbitMQ از پروتکل های پیام رسانی متعدد از جمله AMQP ، Stomp و MQTT پشتیبانی می کند و به آن تطبیق پذیری می دهد تا تقریباً در هر سیستم ادغام شود. طبیعت پروتکل-آگنوستیک آن به این معنی است که می توانید آن را متناسب با هرگونه نیاز پیام رسانی سازگار کنید.
  • استقرار انعطاف پذیر: ویژگی های پیشرفته ای مانند خوشه بندی ، در دسترس بودن بالا ، فدراسیون و صف های پیام رسانی مداوم را ارائه می دهد و این امر را برای برنامه های کوچک و سیستم های بزرگ در مقیاس مناسب مناسب می کند. می توان آن را بر روی فلز لخت ، ماشین های مجازی ، ظروف و سیستم عامل های ابر بومی مستقر کرد.
  • ادغام متقابل پلتفرم: سازگار با اکثر زبانهای برنامه نویسی و چارچوب هایی از جمله جاوا ، پایتون ، .NET ، روبی ، PHP ، اکسیر و GO. کتابخانه های رسمی مشتری و پشتیبانی جامعه از ادغام یکپارچه اطمینان حاصل می کنند.
  • اکوسیستم بالغ: با حمایت یک جامعه بزرگ منبع باز ، مجموعه گسترده ای از افزونه ها ، مستندات غنی و پشتیبانی تجاری از طریق VMware.
  • سبک و کارآمد: حداقل حافظه و استفاده از CPU حتی هنگام رسیدگی به هزاران پیام در ثانیه. این طراحی برای کنترل پیام های با توان بالا و پردازش کم تأخیر طراحی شده است.

🔍 آیا می دانید؟ RabbitMQ در ابتدا برای اجرای پروتکل AMQP تهیه شده است ، اما از آن زمان برای پشتیبانی از بسیاری از پروتکل ها و معماری های پیام رسانی دیگر تکامل یافته است. این یک انتخاب محبوب برای میان افزار پیام گرا است.


شروع

این راهنما فرض می کند که شما در حال نصب RabbitMQ در توزیع مبتنی بر Debian (به عنوان مثال ، اوبونتو) است که روی یک سرور مجازی اجرا می شود.

✅ پیش نیازها

قبل از شروع ، اطمینان حاصل کنید که:

  • یک سرور مجازی (مبتنی بر ابر یا خود میزبان) با دسترسی ریشه یا سودو
  • Debian ، Ubuntu یا سایر سیستم عامل Linux مبتنی بر Debian نصب شده است
  • دانش اصلی خط فرمان (آشنایی با sudoبا nano، و غیره)
  • دسترسی به اینترنت برای نصب بسته ها و وابستگی ها
  • اختیاری: نام دامنه ای که به IP سرور شما برای دسترسی از راه دور به UI وب RabbitMQ اشاره می کند

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

🧰 نکته ابزار: اگر در حال مدیریت چندین سرور یا استفاده از RabbitMQ در مقیاس هستید ، از ابزارهای مدیریت پیکربندی مانند Ansible ، Puppet یا Terraform برای خودکارسازی استقرار و پیکربندی استفاده کنید.


نصب RabbitMQ

🔧 مرحله 1: محیط خود را آماده کنید

قبل از نصب RabbitMQ ، بسته های سیستم خود را به آخرین نسخه برای اطمینان از سازگاری به روز کنید:

sudo apt update && sudo apt upgrade -y
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آب و برق لازم را نصب کنید که به مدیریت بسته و کلیدهای امضای کمک می کنند:

sudo apt install curl gnupg lsb-release -y
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این ابزارها به شما کمک می کنند تا صحت مخازن خارجی را واکشی و اعتبار دهید.

💡 نکته: با استفاده از lsb-release سازگاری را در هنگام واگذاری پویا نامزد توزیع خود برای تنظیم مخزن تضمین می کند.


🔑 مرحله 2: مخزن RabbitMQ را اضافه کنید

برای نصب آخرین بسته های رسمی RabbitMQ ، باید کلید GPG عمومی را وارد کرده و مخزن خارجی را به لیست منابع سیستم خود اضافه کنید.

1. کلید GPG RabbitMQ را وارد کنید

curl -fsSL https://dl.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/rabbitmq.gpg
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2. مخزن رسمی را اضافه کنید

echo "deb [signed-by=/usr/share/keyrings/rabbitmq.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

3. منابع بسته بندی را به روز کنید

sudo apt update
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ترفند: افزودن RabbitMQ از این طریق ، دسترسی به به روزترین نسخه های پایدار را با به روزرسانی های امنیتی و رفع اشکال تضمین می کند.


📦 مرحله 3: سرور RabbitMQ را نصب کنید

سرور RabbitMQ و وابستگی های آن را نصب کنید:

sudo apt install rabbitmq-server -y
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

RabbitMQ به طور خودکار به عنوان یک سرویس SystemD شروع می شود. تأیید کنید که این سرویس فعال و در حال اجرا است:

sudo systemctl status rabbitmq-server
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برای اطمینان از شروع RabbitMQ در هر بوت:

sudo systemctl enable rabbitmq-server
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

می توانید نسخه نصب شده را تأیید کنید:

rabbitmqctl version
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

🔄 نکته نگهداری: استفاده کردن sudo systemctl restart rabbitmq-server پس از هرگونه تغییر پیکربندی یا نصب افزونه برای اعمال به روزرسانی ها بدون راه اندازی مجدد سرور.


🌐 مرحله 4: افزونه مدیریت را فعال کنید

RabbitMQ یک رابط مدیریت قدرتمند مبتنی بر وب فراهم می کند که به مدیران اجازه می دهد تا با صف ها ، مبادلات ، اتصالات و نظارت بر سلامت کارگزار ارتباط برقرار کنند.

افزونه مدیریت را فعال کنید:

sudo rabbitmq-plugins enable rabbitmq_management
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

دسترسی از طریق فایروال به بندر 15672 را مجاز کنید:

sudo ufw allow 15672
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برای تأیید وضعیت فایروال را بررسی کنید:

sudo ufw status
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

🔒 نکته امنیتی: اتصال رابط مدیریت به رابط های LocalHost یا VPN در تولید را در نظر بگیرید. برای امنیت اضافی از پروکسی های معکوس با تأیید اعتبار استفاده کنید.


پیکربندی RabbitMQ

👤 مرحله 5: کاربران را ایجاد و مدیریت کنید

یک کاربر امن با امتیازات اداری ایجاد کنید:

sudo rabbitmqctl add_user myadmin supersecurepassword
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نقش مدیر را اختصاص دهید:

sudo rabbitmqctl set_user_tags myadmin administrator
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مجوزهای کامل را به میزبان پیش فرض مجازی اعطا کنید /:

sudo rabbitmqctl set_permissions -p / myadmin ".*" ".*" ".*"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

کاربر مهمان پیش فرض را حذف کنید ، که محدود به دسترسی LocalHost است:

sudo rabbitmqctl delete_user guest
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

🔐 بهترین تمرین: کنترل دسترسی مبتنی بر نقش (RBAC) را اجرا کنید و حداقل مجوزهای لازم را برای کاربران غیر Admin برای جلوگیری از افزایش امتیاز اختصاص دهید.


⚙ پیکربندی پیشرفته

برای سفارشی سازی تنظیمات ، پرونده پیکربندی RabbitMQ را ویرایش کنید:

sudo nano /etc/rabbitmq/rabbitmq.conf
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پیکربندی نمونه:

listeners.tcp.default = 5672
management.listener.port = 15672
management.listener.ip = 0.0.0.0
loopback_users.guest = false
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

گزینه های دیگر برای در نظر گرفتن:

  • SSL/TLS را برای اتصالات ایمن فعال کنید
  • گزینه های خوشه بندی را برای در دسترس بودن بالا پیکربندی کنید
  • سطح ورود به سیستم و مسیرهای پرونده را برای نظارت تنظیم کنید

مجدداً RabbitMQ را برای اعمال تغییرات شروع کنید:

sudo systemctl restart rabbitmq-server
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

🧩 برای نکته: پیکربندی های پیشرفته همچنین می تواند در SYNTAX ERLANG نوشته شود /etc/rabbitmq/advanced.config، به ویژه برای مجموعه های خوشه ای و فدراسیون مفید است.


💡 دسترسی به داشبورد مدیریت RabbitMQ

مرورگر خود را باز کرده و به زیر بروید:

http://:15672/
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

با استفاده از اعتبارنامه ای که ایجاد کرده اید وارد شوید (به عنوان مثال ، myadmin / supersecurepassword).

از داشبورد می توانید:

  • مشاهده آمار سیستم در زمان واقعی
  • صف ها ، مبادلات ، اتصالات و نرخ پیام را کنترل کنید
  • کاربران و vhosts را مدیریت کنید
  • سلامت ، هشدارها و سیاهههای مربوط به گره را بررسی کنید

📋 نکته جایزه: از داشبورد برای اشکال زدایی و تجسم جریان پیام بین تولید کنندگان و مصرف کنندگان در توسعه استفاده کنید.


🛠 نکات عیب یابی

  • UI وب در دسترس نیست؟ اطمینان حاصل کنید که بندر 15672 توسط گروه های فایروال یا گروه های امنیتی ابر محدود نشده است.
  • سرویس شروع نمی شود؟ گزارش ها را با استفاده از:
sudo journalctl -u rabbitmq-server
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

یا پرونده های ورود به سیستم RabbitMQ را بازرسی کنید:

/var/log/rabbitmq/
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  • اتصال امتناع کرد؟ بررسی کنید که RabbitMQ در حال اجرا است و به آدرس IP مورد انتظار محدود می شود.
  • مجوز خطاها را رد کرد؟ تأیید کنید که نقش های کاربر و مجوزهای VHOST به درستی پیکربندی شده اند.

🧪 نکته اشکال زدایی: می توانید با استفاده از ابزاری مانند ترافیک ترافیک را شبیه سازی کنید amqplib در node.js یا pika در پایتون برای اطمینان از جریان پیام رسانی مناسب.


🔐 سخت شدن و ایمن سازی RabbitMQ

  • از TLS/SSL استفاده کنید: داده های ایمن در ترانزیت با استفاده از گواهینامه های خود امضا شده یا CA.
  • میزبان مجازی: برنامه های جداگانه را با اختصاص دادن vhosts و مجوزهای مختلف به آنها اختصاص دهید.
  • فایروال و IP Whitelisting: فقط به IP های شناخته شده اجازه می دهد تا به درگاه های مدیریت یا پیام رسانی متصل شوند.
  • افزونه های احراز هویت: با ارائه دهندگان هویت خارجی LDAP ، OAUTH2 یا ارائه دهندگان خارجی ادغام شوید.
  • نظارت و ورود به سیستم: برای نظارت بر عملکرد و گزارش های حسابرسی از Prometheus ، Grafana یا Elk Stack استفاده کنید.
  • نرخ پیام را محدود کنید: برای جلوگیری از اضافه بار ، هر اتصال یا محدودیت نرخ در هر قفسه را پیکربندی کنید.

🧠 برای نکته: برای اجرای سیاست های شبکه و مشاهده در محیط های Kubernetes ، RabbitMQ را با مشهای خدمات مانند ISTIO ترکیب کنید.


پایان

اکنون یک نمونه کاملاً عملیاتی RabbitMQ در سرور مجازی خود پیکربندی شده است. در این راهنمای گام به گام ، ما را پوشش دادیم:

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

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


📚 سؤالات متداول

Q1: موارد استفاده متداول RabbitMQ چیست؟

  • برنامه ریزی کار پس زمینه (به عنوان مثال ، کرفس ، Sidekiq)
  • API های ناهمزمان و ارتباطات میکروسرویس
  • معماری محور رویداد
  • ارتباطات دستگاه IoT با استفاده از MQTT
  • اعلان های زمان واقعی و برنامه های گپ
  • خط لوله جریان و پردازش پیام

Q2: چگونه می توانم نمونه RabbitMQ خود را بیشتر تضمین کنم؟

TLS/SSL را فعال کنید ، رمزهای عبور قوی را اجرا کنید ، دسترسی به پورت را محدود کنید ، از Vhosts استفاده کنید ، اتصالات را کنترل کنید ، خط مشی های کنترل دسترسی را تنظیم کنید و با سیستم های تأیید اعتبار شرکت ها ادغام شوید.

Q3: آیا RabbitMQ می تواند درون Docker یا Kubernetes اجرا شود؟

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

📦 در راهنمای آینده ما بیشتر بیاموزید: در حال اجرا RabbitMQ در Kubernetes با کلاه و ذخیره مداومبشر


افکار نهایی

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

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

📢 مرحله بعدی: بیاموزید که چگونه خوشه های RabbitMQ را در دسترس بالا قرار دهید ، از فدراسیون یا بیل برای مهاجرت داده استفاده کنید و برنامه های خود را با استفاده از کتابخانه های رسمی مشتری AMQP وصل کنید!

نوشته های مشابه

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

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

دکمه بازگشت به بالا