অ্যাপাচি অ্যাকটিভএমকিউ (Apache ActiveMQ) দুটি প্রধান মেসেজিং মডেল সাপোর্ট করে: Queue এবং Topic। এই দুটি মডেল ডিস্ট্রিবিউটেড সিস্টেমে মেসেজিং সিস্টেমের মধ্যে যোগাযোগের জন্য ব্যবহৃত হয়। তবে, Queue এবং Topic এর মধ্যে কিছু মৌলিক পার্থক্য রয়েছে, যা তাদের ব্যবহার এবং কার্যকারিতাকে পৃথক করে।
Queue (কিউ)
Queue মেসেজিং মডেল Point-to-Point (P2P) মডেল নামে পরিচিত। এটি একক প্রযোজক (Producer) এবং একক ভোক্তা (Consumer) এর মধ্যে মেসেজের আদান-প্রদান নিশ্চিত করে।
বৈশিষ্ট্য:
- একক কনজিউমার: একটি কিউতে যেসব মেসেজ আসে, সেগুলি কেবলমাত্র এক কনজিউমার (Consumer) গ্রহণ করতে পারে। অর্থাৎ, মেসেজগুলো একাধিক কনজিউমারের মধ্যে ভাগ করা হয় না।
- মেসেজ সিকোয়েন্স: কিউ মেসেজের সিকোয়েন্স এবং অর্ডার সঠিকভাবে রক্ষা করে, যাতে মেসেজগুলো সঠিকভাবে প্রসেস করা যায়।
- ডুরেবিলিটি (Durability): কিউ মেসেজগুলো স্থায়ী হতে পারে (যদি ডুরেবল কিউ ব্যবহৃত হয়), যা নিশ্চিত করে যে, মেসেজ সিস্টেম পুনরায় চালু হলে মেসেজগুলো হারাবে না।
উদাহরণ:
- একটি অর্ডার প্রক্রিয়াকরণ সিস্টেম, যেখানে একটি কিউতে গ্রাহকের অর্ডারগুলো রাখা হয় এবং একক প্রক্রিয়া (যেমন পেমেন্ট) করা হয়।
Topic (টপিক)
Topic মেসেজিং মডেল Publish-Subscribe (Pub-Sub) মডেল নামে পরিচিত। এটি একাধিক প্রযোজক এবং একাধিক ভোক্তার মধ্যে মেসেজের আদান-প্রদান নিশ্চিত করে।
বৈশিষ্ট্য:
- বহু কনজিউমার: একাধিক কনজিউমার একই মেসেজ গ্রহণ করতে পারে। অর্থাৎ, এক প্রযোজক (Producer) একই মেসেজ একাধিক কনজিউমারকে পাঠাতে পারে।
- ব্রডকাস্টিং (Broadcasting): মেসেজটি প্রকাশ (Publish) করার পর, এটি সমস্ত সাবস্ক্রাইবারদের (Subscribers) কাছে পৌঁছায়।
- নন-ডুরেবল (Non-Durable): সাধারণত টপিকের মেসেজগুলো ডুরেবল নয়, তবে এটি ডুরেবল সাবস্ক্রিপশন সাপোর্ট করে, যা মেসেজগুলো সাবস্ক্রাইবারদের না পাওয়ার পরে আবার পাঠাতে সাহায্য করে।
উদাহরণ:
- একটি স্টক মার্কেট অ্যাপ্লিকেশন, যেখানে একাধিক কনজিউমার (যেমন ট্রেডাররা) একই স্টকের দাম সম্পর্কিত তথ্য গ্রহণ করতে পারে।
Queue এবং Topic এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Queue | Topic |
|---|---|---|
| মেসেজিং মডেল | Point-to-Point (P2P) | Publish-Subscribe (Pub-Sub) |
| কনজিউমার | একক কনজিউমার মেসেজ গ্রহণ করে। | একাধিক কনজিউমার একই মেসেজ গ্রহণ করতে পারে। |
| মেসেজ প্রসেসিং | মেসেজ একে একে প্রসেস হয়। | মেসেজ একাধিক কনজিউমারদের মধ্যে ভাগ করা হয়। |
| পাঠানো মেসেজ | এক মেসেজ একটি কনজিউমারের কাছে পাঠানো হয়। | এক মেসেজ একাধিক কনজিউমারের কাছে পাঠানো হয়। |
| ডুরেবিলিটি | ডুরেবল কিউ সমর্থন করে, যাতে মেসেজ হারানো যায় না। | ডুরেবল সাবস্ক্রিপশন সমর্থন করে, তবে সাধারণত ডুরেবল নয়। |
| ব্যবহার | একক প্রক্রিয়ায় মেসেজ প্রসেসিং (যেমন অর্ডার প্রক্রিয়া)। | একাধিক সাবস্ক্রাইবারদের জন্য মেসেজ সম্প্রচার (যেমন খবর বা স্টক টিপস)। |
সারাংশ
Queue এবং Topic এর মধ্যে মূল পার্থক্য হল মেসেজের প্রসেসিং এবং মেসেজের গ্রহণকারী। Queue মডেল একক কনজিউমারের জন্য মেসেজ প্রসেসিং নিশ্চিত করে, যেখানে মেসেজগুলি একে একে গ্রহণ করা হয়। অন্যদিকে, Topic মডেল একাধিক কনজিউমারের মধ্যে মেসেজ ভাগ করে দেয়, এবং এটি মূলত Publish-Subscribe মডেল অনুসরণ করে, যেখানে একাধিক সাবস্ক্রাইবার একই মেসেজ গ্রহণ করে।
Read more