ভার্চুয়াল হোস্ট (vhosts) RabbitMQ-তে একক ব্রোকারের মধ্যে যৌক্তিক বিচ্ছিন্নতা প্রদান করে — কিউ, এক্সচেঞ্জ এবং অনুমতির জন্য আলাদা নেমস্পেস। তারা একটি RabbitMQ উদাহরণকে একাধিক বিচ্ছিন্ন অ্যাপ্লিকেশন বা পরিবেশ পরিবেশন করতে দেয়।
ভার্চুয়াল হোস্ট কী
VIRTUAL HOST (vhost) → a logically isolated namespace within a RabbitMQ broker:
→ each vhost has its OWN queues, exchanges, bindings (isolated from other vhosts)
→ its own PERMISSIONS (users granted access per vhost)
→ like separate "virtual brokers" within one physical broker
→ partitions a single RabbitMQ instance into isolated environments
ভার্চুয়াল হোস্ট কেন ব্যবহার করবেন
✓ ISOLATION → separate applications/teams/environments on one broker (their queues/exchanges
don't interfere or collide)
✓ MULTI-TENANCY → multiple apps share a broker but stay separated
✓ ENVIRONMENTS → e.g. separate vhosts for dev/staging (on a shared broker)
✓ ACCESS CONTROL → grant users permissions per vhost (security/separation)
✓ Organization → group related messaging resources; avoid name collisions
vhosts ব্যবহার করা
→ clients connect to a SPECIFIC vhost (specified in the connection)
→ resources (queues, exchanges) are scoped to their vhost (same name in different vhosts =
different resources)
→ users are granted permissions (configure/write/read) PER vhost
→ the default vhost is "/"
কেন এটি গুরুত্বপূর্ণ
ভার্চুয়াল হোস্ট বোঝা মূল্যবান কারণ তারা RabbitMQ-তে যৌক্তিক বিচ্ছিন্নতা প্রদান করে, মাল্টি-টেন্যান্সি এবং সংগঠনের জন্য উপযোগী, তাই এটি প্রাসঙ্গিক ব্যবহারিক জ্ঞান।
ভার্চুয়াল হোস্ট (vhosts) একটি একক RabbitMQ ব্রোকারের মধ্যে বিচ্ছিন্ন নেমস্পেস প্রদান করে, এবং সেগুলি বোঝা RabbitMQ সংগঠিত এবং সুরক্ষিত করার জন্য উপযোগী।
vhosts কী তা বোঝা — ব্রোকারের মধ্যে যৌক্তিকভাবে বিচ্ছিন্ন নেমস্পেস, প্রতিটির নিজস্ব কিউ, এক্সচেঞ্জ, বাইন্ডিং এবং অনুমতি (একটি ভৌত ব্রোকারের মধ্যে আলাদা ভার্চুয়াল ব্রোকারের মতো) — তারা যে বিচ্ছিন্নতা প্রদান করে তা স্পষ্ট করে।
vhosts ব্যবহার করার কারণ বোঝা — বিচ্ছিন্নতা (একটি ব্রোকারে অ্যাপ্লিকেশন, দলগুলি বা পরিবেশ বিভক্ত করা যাতে তাদের সম্পদ হস্তক্ষেপ বা সংঘর্ষ করে না), মাল্টি-টেন্যান্সি (একাধিক অ্যাপ্লিকেশন একটি ব্রোকার ভাগ করা যখন আলাদা থাকে), পরিবেশ বিভক্ত করা (একটি ভাগ করা ব্রোকারে dev/staging), অ্যাক্সেস নিয়ন্ত্রণ (নিরাপত্তা এবং বিচ্ছিন্নতার জন্য প্রতি vhost ব্যবহারকারীদের অনুমতি প্রদান করা), এবং সংগঠন (সম্পর্কিত সংস্থান গোষ্ঠীকরণ, নাম সংঘর্ষ এড়ানো) — একাধিক ব্যবহারে একটি RabbitMQ উদাহরণ ভাগ করার সময় তাদের ব্যবহারিক মূল্য স্পষ্ট করে বিচ্ছিন্নতা বজায় রেখে।
vhosts ব্যবহার করা বোঝা — ক্লায়েন্টগুলি একটি নির্দিষ্ট vhost-এ সংযোগ করছে, সংস্থানগুলি তাদের vhost-এ স্কোপ করা হচ্ছে (তাই বিভিন্ন vhost-এ একই নাম মানে বিভিন্ন সংস্থান), ব্যবহারকারীদের প্রতি vhost অনুমতি প্রদান করা, এবং ডিফল্ট vhost হচ্ছে "/" — ব্যবহারিক vhost ব্যবহার প্রতিফলিত করে।
Vhosts মূল্যবান এমন পরিস্থিতির জন্য যেখানে একটি RabbitMQ ব্রোকার একাধিক বিচ্ছিন্ন অ্যাপ্লিকেশন, দল বা পরিবেশ পরিবেশন করে (একটি সাধারণ প্রয়োজন), যৌক্তিক বিচ্ছিন্নতা এবং অ্যাক্সেস নিয়ন্ত্রণ প্রদান করে আলাদা ব্রোকার উদাহরণের প্রয়োজন ছাড়াই।
সেগুলি বোঝা প্রতিফলিত করে কীভাবে ভাগ করা RabbitMQ ব্যবহার সংগঠিত এবং সুরক্ষিত করতে হয় সে সম্পর্কে জ্ঞান।
যেহেতু ভার্চুয়াল হোস্টগুলি RabbitMQ-তে দরকারী যৌক্তিক বিচ্ছিন্নতা প্রদান করে (মাল্টি-টেন্যান্সি, পরিবেশ বিচ্ছিন্নতা, অ্যাক্সেস নিয়ন্ত্রণ, সংগঠন) একটি ভাগ করা ব্রোকারে একাধিক বিচ্ছিন্ন ব্যবহারে, এবং যেহেতু সেগুলি বোঝা RabbitMQ সংগঠিত এবং সুরক্ষিত করার জন্য প্রাসঙ্গিক, ভার্চুয়াল হোস্টগুলি বোঝা মূল্যবান, ব্যবহারিকভাবে-প্রাসঙ্গিক RabbitMQ জ্ঞান — যৌক্তিক বিচ্ছিন্নতার জন্য উপযোগী (মাল্টি-টেন্যান্সি, অ্যাপ্লিকেশন/পরিবেশ বিভক্ত করা, প্রতি-vhost অ্যাক্সেস নিয়ন্ত্রণ) একটি ভাগ করা ব্রোকারের মধ্যে, RabbitMQ ব্যবহার সংগঠিত এবং সুরক্ষিত করতে সাহায্য করা, এবং একাধিক অ্যাপ্লিকেশন বা দল পরিবেশন করে এমন স্থাপনার জন্য প্রাসঙ্গিক।
