Quick RabbitMQ Refresher – DEV Community

پیام ها به صرافی ها منتشر می شوند. ناشران برای ارسال پیام فقط باید با آنها تعامل داشته باشند.
پیام ها به صف ها تحویل داده می شوند. مشترکین فقط برای مصرف پیام ها باید با آنها تعامل داشته باشند.
RabbitMQ مقید می کند مبادله به صف ها، جداسازی گیرنده ها و مصرف کنندگان.
شما انعطاف پذیری زیادی در مسیریابی پیام ها (از مبادلات به صف) دارید. ساده ترین آنها این است مستقیم مسیریابی (که بر اساس کلید مسیریابی داده شده مسیر می شود)، که می تواند به صورت unicast یا multicast عمل کند:
یکی دیگر از موارد مفید این است طرفدار کردن (بدون کلید مسیریابی)، که تقریباً یک پخش است:
اتصال:
- این مبتنی بر TCP است و اتصالات طولانی مدت را برای کارایی فرض می کند (اتصال جدیدی در هر عملیات پروتکل باز نمی شود).
- به طور پیش فرض، RabbitMQ روی پورت 5672 در تمام رابط های موجود گوش می دهد.
کانال:
- یک اتصال سبک وزن که یک اتصال TCP را به اشتراک می گذارد (مولتی پلکس).
- یک کانال فقط در یک اتصال وجود دارد و هرگز به تنهایی وجود ندارد.
- بسیار معمول است که یک کانال جدید در هر موضوع باز کنید و کانال ها را بین آنها به اشتراک نگذارید.
- یک کانال می تواند به دلیل یک استثناء پروتکل بسته شود.
هاست های مجازی تقریباً شبیه فضای نام هستند:
- نام دارد.
- گروه بندی و جداسازی منطقی منابع را فراهم می کند.
- با استفاده از rabbitmqctl یا HTTP API ایجاد و حذف می شوند (نیازی به ویرایش فایل پیکربندی نیست).
- مجوزهای منبع در RabbitMQ برای هر میزبان مجازی محدوده است.
AMQP 1.0 کاملاً متفاوت از 0.9.1 است و هیچ چیز را در سطح سیم به اشتراک نمی گذارد. بسیاری از ایده های اصلی RabbitMQ، مانند مبادلات و کلیدهای مسیریابی، فقط در 0.9.1 وجود دارند.
RabbitMQ به زبان Erlang نوشته شده است که به خوبی با مشکلی که در حال رفع آن است مطابقت دارد. برنامه های کاربردی Erlang از فرآیندهای بسیار سبک وزن (Erlang) ساخته شده اند که می توانند به عنوان اشیاء “زنده” با کپسوله کردن داده ها و ارسال پیام دیده شوند، اما قادر به تغییر رفتار در طول زمان اجرا هستند.
منزیا یک سیستم مدیریت پایگاه داده در زمان واقعی نرم و توزیع شده است که به عنوان بخشی از کتابخانه استاندارد Erlang (پلتفرم Open Telecom، OTP) گنجانده شده است. این ویژگیهایی مانند تراکنشهای اتمی، تکرار جدول و طرحوارهای انعطافپذیر را ارائه میکند، که آن را برای موارد استفادهای که نیاز به دسترسی بالا و تحمل خطا دارند، بسیار مناسب میکند.
خپری یک باطن ذخیره سازی جدید برای ابرداده RabbitMQ است که برای جایگزینی Mnesia طراحی شده است. ساخته شده بر روی پروتکل Raft، مدیریت خوشه را با مدیریت خودکار پارتیشن های شبکه، مشابه صف های حد نصاب، بدون نیاز به پیکربندی اضافی، ساده می کند.
Mnesia ذخیرهسازی اصلی RabbitMQ است و علیرغم معرفی خپری، همچنان به عنوان زمان نگارش پیشفرض است.
Rabbit یک رابط وب دوست داشتنی ارائه می دهد که به طور پیش فرض اجرا می شود و به طور مستقیم در مرورگر وب اجازه می دهد:
- انتشار پیام
- مصرف کننده پیام
- نظارت بر استفاده
- آمار اولیه سرور
اگر آن را به صورت محلی اجرا می کنید، می توانید به http://localhost:15672 دسترسی داشته باشید و استفاده کنید guest
به عنوان نام کاربری و رمز عبور.
- یک کاربر دارای مجوزهای پیکربندی، نوشتن و خواندن است.
- پیکربندی: ایجاد، تخریب یا تغییر منابع (مبادله و صف).
- بنویسید: انتشار پیام.
- بخوانید: مصرف پیام
- مجوزها یک regex هستند، “^foo” به منابعی با نام هایی که توسط “foo” آغاز شده اند مجوز می دهد.
- مجوزها برای هر میزبان مجازی است.
sudo service rabbitmq-server status
sudo rabbitmq-plugins enable rabbitmq-management
sudo service rabbitmq-server restart
sudo rabbitmqctl add_user ccm-admin hare123
sudo rabbitmqctl set_user_tags ccm-admin administrator
sudo rabbitmqctl add_vhost ccm_dev_vhost
sudo rabbitmqctl set_permissions -p ccm-dev-host ccm-admin ".*" ".*" ".*"