মেসেজ কিউ (Message Queue)
মেসেজ কিউ (Message Queue) হলো একটি টেকসই উপাদান (durable component), যা মেমোরিতে মেসেজ সংরক্ষণ করে এবং অ্যাসিঙ্ক্রোনাস (asynchronous) কমিউনিকেশন সাপোর্ট করে। এটি মূলত একটি বাফার (buffer) যা মেসেজ বিতরণ করার জন্য ব্যবহৃত হয়।
মেসেজ কিউর মূল আর্কিটেকচার হলো সহজ: Producer → Queue ← Consumer
চিত্র ১৮ (Figure 18) — Producer মেসেজ কিউতে পাঠায়, Consumer সেটি গ্রহণ করে (subscribe করে ও consume করে)।
মেসেজ কিউ কীভাবে কাজ করে?
- Producer/Publisher (প্রযোজক): মেসেজ তৈরি করে এবং কিউতে পাবলিশ করে।
- Consumer/Subscriber (ভোক্তা): কিউতে সংযুক্ত হয় এবং মেসেজ গ্রহণ করে প্রক্রিয়া করে।
গুরুত্বপূর্ণ বৈশিষ্ট্য:
- Producer এবং Consumer একে অপরের সাথে সরাসরি সংযুক্ত নয়।
- Producer বা Consumer যেকোনো একটি অফলাইন হলেও কিউ মেসেজ ধরে রাখে।
- এটি সিস্টেমের বিভিন্ন অংশকে Decouple করে — প্রতিটি অংশ স্বাধীনভাবে স্কেল করা যায়।
বাস্তব উদাহরণ (Real-world use case)
ধরুন আপনার অ্যাপ্লিকেশনে ব্যবহারকারী একটি ছবি আপলোড করেন এবং সেই ছবিটি বিভিন্ন আকারে (cropping, sharpening, blurring) প্রক্রিয়া করতে হবে।
চিত্র ১৯ (Figure 19) — Web Servers (Producer cluster) মেসেজ কিউতে পাবলিশ করে, Photo processing workers (Consumer cluster) সেটি প্রক্রিয়া করে।
- Web Servers (Producer): আপলোড হলে কিউতে message পাঠায়
- Message Queue: message সংরক্ষণ করে রাখে
- Photo Processing Workers (Consumer): কিউ থেকে message নিয়ে ছবি প্রক্রিয়া করে
মেসেজ কিউর সুবিধা
- Loose Coupling: Producer ও Consumer একে অপর থেকে আলাদা — একটি ব্যর্থ হলে অন্যটি প্রভাবিত হয় না।
- Independent Scaling: Image processing worker বেশি হলে শুধু Consumer বাড়ানো যায়।
- Resilience: Producer দ্রুত মেসেজ পাঠাতে পারে; Consumer তার নিজের গতিতে প্রক্রিয়া করে।