RabbitMQ
RabbitMQ یک سرویس متن باز Message Broker یا پیام دهنده است که معماری Advanced Message Queuing Protocol
یا به اختصار AMQP
را ایجاد کرده است.
همچنین این سرویس در ادامه با معماری plug-in به نحوی گسترش یافت تا بتواند از پروتکولهایی مثل Streaming Text Oriented Messaging Protocol
یا به اختصار )STOMP(، MQTT و ... هم پشتیبانی کند.
در زیر میتوانید لیست نسخههای رسمی پشتیبانی شده را مشاهده کنید:
- RabbitMQ 3.8-management
برای اینکه بتوانید این سرویس را دیپلوی کنید، پارامترهای زیر را میتوانید مشخص کنید:
کانفیگ | نوع | پیشفرض | توضیح |
---|---|---|---|
service_name | string | rabbitmq | نامی که برای سرویس مایلید در نظر گرفته شود |
rabbitmq_username | string | rabbitmq | نام کاربری |
rabbitmq_password | string | rabbitmq | گذرواژه |
dashboard_enabled | boolean | false | آیا rabbitmq در محیط وب در دسترس باشد یا خیر |
rabbitmq_plugins | string | لیست پلاگینهای RabbitMQ | |
volume_name | string | نام volumeای که به سرویس وصل می شود | |
volume_browser_enabled | boolean | false | آیا سرویس مدیریت Dedicated Volume برای این سرویس ساخته شود یا خیر |
راهنمایی
توجه داشته باشید برای استفاده از قابلیت Volume Browser سرویس شما باید به یک Dedicated Volume متصل باشد؛ در غیر این صورت با خطای سرور مواجه خواهید شد.
برای دیپلوی کردن یک RabbitMQ میتوانیم به این شکل یک سرویس بسازیم:
این دستور یک سرویس RabbitMQ ایجاد میکند که:
- نام آن test-rabbitmq )یعنی در شبکه داخلی فضانام شما باقی سرویسها از طریق نام test-rabbitmq و بر روی پورت 5672 میتوانند به آن متصل شوند(.
- میزان رم آن 512 مگابایت.
- نا کاربری و گذرواژه rabbitmq.
- و نام volume که دادههای RabbitMQ بر روی آن ذخیره میشود VOLUME_NAME است.
نکته
توجه داشته باشید در صورتی که از volume استفاده نکرده باشید، تنطیمات و اطلاعات این سرویس در جایی ذخیره نمیشود و در نتیجه در صورت restart شدن سرویس، سرویس به تنظیمات اولیه بازمیگردد.
مهم
برای استفاده از سرویس RabbitMQ باید به نکته زیر توجه داشته باشید: برای حفط مسائل امنیتی سرویس RabbitMQ به صورت یک Internal Service عمل میکند و شما خارج از namespace خود به آن دسترسی ندارید.
RabbitMQ Plugins
سرویس RabbitMQ تعدادی پلاگین از پیش تعریف شده در اختیار شما قرار میدهد که میتوانید بسته به نوع نیاز خود آنها را انتخاب و فعال کنید. لیست تمام پلاگینهایی که میتوانید از طریق سرویس مدیریت شده سکوی ابری فندق فعال کنید در جدول زیر آمده است.
نام پلاگین | نام پلاگین | نام پلاگین |
---|---|---|
rabbitmq_amqp1_0 | rabbitmq_auth_backend_cache | rabbitmq_auth_backend_ldap |
rabbitmq_auth_backend_http | rabbitmq_auth_mechanism_ssl | rabbitmq_auth_backend_oauth2 |
rabbitmq_event_exchange | rabbitmq_consistent_hash_exchange | rabbitmq_federation_management |
rabbitmq_federation | rabbitmq_mqtt | rabbitmq_jms_topic_exchange |
rabbitmq_peer_discovery_common | rabbitmq_peer_discovery_aws | rabbitmq_peer_discovery_etcd |
rabbitmq_peer_discovery_consul | rabbitmq_prometheus | rabbitmq_peer_discovery_k8s |
rabbitmq_recent_history_exchange | rabbitmq_random_exchange | rabbitmq_shovel |
rabbitmq_sharding | rabbitmq_stomp | rabbitmq_shovel_management |
rabbitmq_tracing | rabbitmq_top | rabbitmq_web_mqtt |
rabbitmq_trust_store | rabbitmq_web_stomp | rabbitmq_web_mqtt_examples |
rabbitmq_web_stomp_examples |
برای آنکه بتوانید از طریق fandogh-cli
پلاگینها را فعال کنید، میتوانید در هنگام deploy به روش زیر عمل کن:
مهم
به نحوه تعریف پلاگینها دقت کنید. در صورتی که از fandogh-cli استفاده میکنید باید نام پلاگین ها را با فاصله از هم و در بین double quotation یا " " قرار دهید تا تمام لیست دریافت شود.
نسخهها )Versions(
سرویسهای مدیریت شده سکوی ابری فندق، تنها از نسخههای stable
و پشتیبانی شده توسط توسعه دهنده های اصلی آن محصول پشتیبانی میکند. به همین خاطر میتوانید با خیال راحت سرویس مورد نظر خود را به همراه نسخه مورد نیازتان بر روی فضانام مستقر نمایید.
لیست نسخههای موجود برای سرویس RabbitMQ
به شرح زیر هستند:
- RabbitMQ 3.8-management
برای ایجاد سرویس مدیریت شده RabbitMQ
با نسخه دلخواه، میتوانید از دستور زیر استفاده کنید:
توجه
توجه داشته باشید شما نمیتوانید نسخه سرویس در حال اجرا را تغییر دهید. چرا که ممکن است در نسخههای متفاوت، تغییراتی وجود داشته باشد که باعث ایجاد تداخل در تنظیمات اصلی و در نتیجه از بین رفتن دادهها شود!
راهنمایی
برای آنکه بتوانید نسخه سرویس خود را تغییر دهید، بهتر است ابتدا یک سرویس جدید با نسخه دلخواه ایجاد کرده؛ سپس از اطلاعات سرویس قبلی Backup تهیه نموده و وارد سرویس جدید کنید. در صورت وجود خطا یا تداخل، احتمال دارد نیاز داشته باشید برخی دادهها یا تنظیمات را بروزرسانی کرده و تغییر دهید.
افزودن دامنه دلخواه
اگر قصد داشته باشید دامنه یا دامنههای دلخواهتان را به سرویس مدیریت شده مورد نظر متصل نمایید، از طریق این بخش میتوانید لیست این دامنهها را مشخص کنید.
برای مثال فرض کنید تمایل دارید سرویس مدیریت شده مورد نظر شما روی domain.com و www.domain.com در دسترس باشد:
بدین شکل بخش دامنه را به مانیفست سرویس خود اضافه کرده و آن را مستقر نمایید:
توجه
توجه داشته باشید، دامنههایی که به سرویس مدیریت شده RabbitMQ اضافه میشوند، در اصل به داشبورد مدیریتی آن متصل میشوند.
Deploy With Manifest
شما همچنین می توانید برای اجرای راحت تر سرویس های مدیریت شده از مانیفست همانند مثال زیر استفاده کنید.
- مانیفست RabbitMQ با Dashboard
- مانیفست RabbitMQ با Dashboard و پلاگین
- مانیفست RabbitMQ بدون Dashboard