مفاهیم پایه RabbitMQ
نمودار مفهومی RabbitMQ
توضیح مفهوم
پیام
یک پیام شامل هدر پیام (به عبارت دیگر اطلاعات پیکربندی اضافی) و بدنه پیام (به عبارت دیگر محتوای پیام) است.
صاحبنظر
تولیدکننده پیام، که یک برنامه کاربردی مشتری است که پیامها را به یک تبادل منتشر میکند.
تبادل
یک تبادل برای دریافت پیامهای ارسال شده توسط تولیدکنندگان استفاده میشود و این پیامها را به صفها در سرور هدایت میکند.
چهار نوع تبادل وجود دارد:
-
نوع مستقیم: کلید مسیریابی در پیام را با کلیدهای مرتبط با همهی پیوندهای تبادل مقایسه میکند. اگر مطابقت وجود داشته باشد، پیام به صف متناظر آن پیوند ارسال میشود.
-
نوع موضوعی: کلید مسیریابی در پیام را با کلیدهای مرتبط با همهی پیوندهای تبادل مقایسه میکند. اگر مطابقت وجود داشته باشد، پیام به صف متناظر آن پیوند ارسال میشود.
-
نوع پخش: پیامها را به صفهای متناظر همهی پیوندها مستقیماً ارسال میکند و در هنگام مسیریابی از کلید مسیریابی عبور مستقیمی میکند.
-
نوع سربرگ: سربرگها در پیام را با پارامترهای مرتبط با همهی پیوندهای تبادل مقایسه میکند. اگر مطابقت وجود داشته باشد، پیام به صف متناظر آن پیوند ارسال میشود (کمتر استفاده میشود، مشابه نوع مستقیم).
توجه: توضیحات دقیق دربارهی انواع تبادل در بخشهای بعدی در مورد حالات کاری ارائه خواهد شد. این فقط یک چشمانداز است.
پیوند
ارتباطی که برای برقراری اتصال بین صفهای پیام و تبادلها استفاده میشود.
صف
صف پیامی است که پیامها را تا زمانی که به مصرفکنندگان تحویل داده شوند، ذخیره میکند. این به عنوان یک ظرف برای پیامها و نقطه پایانی آنها عمل میکند. یک پیام میتواند به یک یا چندین صف تحویل داده شود. پیامها در صفها باقی میمانند و منتظر مصرفکنندگان برای اتصال و بازیابی آنها هستند.
اتصال
اتصال شبکه، مانند یک اتصال TCP.
کانال
یک کانال اتصال مجازی است که درون یک اتصال واقعی TCP بهوجود میآید. همه دستورات AMQP از طریق کانالها ارسال میشوند، آیا این پیامها را منتشر میکند، به صفها مشترک میشود یا پیامها را میگیرد. این طراحی مفهوم کانالها را معرفی میکند تا از یک اتصال TCP تکرار شود، چرا که برقراری و خاتمه دادن اتصالهای TCP برای سیستم عامل هزینهبر است.
مصرفکننده
مصرفکننده پیام، که نمایندهی یک برنامه کاربردی مشتری است که پیامها را از صفهای پیام بازیابی میکند.
میزبان مجازی
یک میزبان مجازی مجموعهای از تبادلها، صفهای پیام و اشیاء مرتبط را نمایندگی میکند. این یک دامنه سرور مستقل است که همان هویت احراز هویت و محیط رمزنگاری را به اشتراک میگذارد. هر میزبان مجازی اصولاً یک نسخه کوچک از یک سرور RabbitMQ است با صفها، تبادلها، پیوندها و مکانیسمهای مجوز خود.
میزبانهای مجازی یک مفهوم اساسی در AMQP هستند و باید هنگام برقراری اتصال مشخص شوند. میزبان مجازی پیشفرض RabbitMQ / است.
توجه: میزبان مجازی یک شکل از استراتژی جداسازی منابع است که اجازه دارد برای جدا کردن مناطق جداگانه درون همان سرور RabbitMQ برای بخشبردن منابع متعدد.
دلال
نمایندهٔ واقعی خود سرور پیام صورت گرفته است.