কাফকা (Apache Kafka) কি জিনিস? বন্ধুদের আড্ডায় শিখে নিই!
রহিম: ভাই সালাম! শুনলাম তুমি এখন কাফকা নিয়ে কাজ করো। এইটা আবার কি জিনিস?
করিম: ওয়ালাইকুম সালাম! হা ভাই, কাফকা একটা দারুণ জিনিস। তুই কি কখনো ঢাকার গুলিস্তানের বাস কাউন্টারের দিকে খেয়াল করেছিস?
রহিম: মানে? বাস কাউন্টার কেন?
করিম: দেখ, গুলিস্তানে যেমন অনেকগুলো বাস কাউন্টার আছে। কিছু বাস যায় চট্টগ্রাম, কিছু যায় সিলেট, কিছু যায় রংপুর। এখন বিভিন্ন যাত্রী এসে টিকিট কাটে, আর বাসগুলো সেই যাত্রীদের নিয়ে যায়। কাফকাও অনেকটা এমনই কাজ করে!
কাফকা কি জিনিস?
করিম: কাফকা হলো একটা Message Streaming Platform। সহজ ভাষায় বললে, এটা একটা খুব দ্রুত ডাটা আদান-প্রদানের সিস্টেম। যেমন তোর মোবাইলে হোয়াটসঅ্যাপে মেসেজ আসে, তেমনি কাফকায় বিভিন্ন সিস্টেম একে অপরের সাথে তথ্য আদান-প্রদান করে।
রহিম: ওহ! মানে কম্পিউটারের জন্য হোয়াটসঅ্যাপ?
করিম: একদম! কিন্তু হোয়াটসঅ্যাপের চেয়ে অনেক বেশি শক্তিশালী। যেমন ধর, ফেসবুকে তুই একটা পোস্ট দিলি। এখন সেই পোস্টের তথ্য যেতে হবে:
- তোর বন্ধুদের নিউজফিডে
- নোটিফিকেশন সিস্টেমে
- সার্চ ইনডেক্সে
- অ্যানালিটিক্স সিস্টেমে
এই সব জায়গায় একসাথে পাঠানোর জন্য কাফকা ব্যবহার করা হয়।
কাফকার মূল অংশগুলো
১. Producer (প্রযোজক)
করিম: Producer হলো সেই ব্যক্তি যে কাফকায় মেসেজ পাঠায়। আমাদের বাস কাউন্টারের উদাহরণে বললে, যাত্রী হলো Producer। যাত্রী এসে টিকিট কাটে।
রহিম: আচ্ছা, তাহলে আমার অ্যাপ যদি কোনো ডাটা পাঠায়, সেটা Producer?
করিম: বিল্কুল ঠিক! যেমন ধর, তোর e-commerce সাইটে কেউ একটা অর্ডার দিল। সেই অর্ডারের তথ্য কাফকায় পাঠানোর জন্য তোর অ্যাপ একটা Producer।
২. Consumer (ভোক্তা)
করিম: Consumer হলো যে কাফকা থেকে মেসেজ পড়ে। বাস কাউন্টারের উদাহরণে, বাস হলো Consumer। বাস এসে যাত্রীদের নিয়ে যায়।
রহিম: মানে যে সিস্টেম ডাটা রিসিভ করে?
করিম: হ্যাঁ! যেমন অর্ডারের তথ্য পেয়ে:
- Inventory সিস্টেম স্টক কমাবে
- Payment সিস্টেম পেমেন্ট প্রসেস করবে
- Shipping সিস্টেম ডেলিভারির ব্যবস্থা করবে
এরা সবাই Consumer।
৩. Topic (বিষয়)
করিম: Topic হলো কাফকার "চ্যানেল"। যেমন আমাদের টিভিতে BTV, Channel i, ATN এগুলো আলাদা চ্যানেল। কাফকায়ও আলাদা আলাদা Topic আছে।
বাস কাউন্টারের উদাহরণে বললে:
- "চট্টগ্রাম-বাস" একটা Topic
- "সিলেট-বাস" আরেকটা Topic
- "রংপুর-বাস" আরেকটা Topic
রহিম: অর্থাৎ বিভিন্ন ধরনের ডাটার জন্য আলাদা Topic?
করিম: ঠিক! যেমন:
- "user-orders" Topic এ অর্ডারের ডাটা
- "user-logins" Topic এ লগইনের ডাটা
- "payment-notifications" Topic এ পেমেন্টের ডাটা
৪. Partition (অংশ)
করিম: এখন মজার ব্যাপার হলো Partition। ধর চট্টগ্রামের বাসের জন্য অনেক যাত্রী। একটা কাউন্টার দিয়ে সামলানো যাচ্ছে না। তাহলে কি করবি?
রহিম: আরো কাউন্টার খুলব!
করিম: একদম! কাফকায়ও একই কাজ হয়। একটা Topic কে কয়েকটা Partition এ ভাগ করা হয়। যেমন:
Topic: user-orders
├── Partition 0: অর্ডার ১, ৪, ৭, ১০...
├── Partition 1: অর্ডার ২, ৫, ৮, ১১...
└── Partition 2: অর্ডার ৩, ৬, ৯, ১২...
রহিম: এতে কি ফায়দা?
করিম: অনেক ফায়দা! একসাথে অনেক Consumer কাজ করতে পারে। যেমন তিনটা বাস একসাথে তিনটা কাউন্টার থেকে যাত্রী নিতে পারে।
৫. Broker (দালাল)
করিম: Broker হলো কাফকার "সার্ভার"। যেমন আমাদের বাস কাউন্টারের মালিক। সে সব ব্যবস্থা সামলায়।
রহিম: একটা Broker দিয়েই সব কাজ হয়?
করিম: না না! সাধারণত কয়েকটা Broker একসাথে কাজ করে। যেমন ঢাকায় গুলিস্তান, কমলাপুর, গাবতলী - এরকম কয়েকটা বাস টার্মিনাল আছে। একটা বন্ধ হলে অন্যটা দিয়ে কাজ চলে।
কাফকার বিশেষত্ব
১. অসম্ভব দ্রুত
করিম: কাফকা সেকেন্ডে লাখ লাখ মেসেজ হ্যান্ডল করতে পারে। যেমন বিকাশে প্রতি সেকেন্ডে হাজার হাজার লেনদেন হয়, কাফকা সেসব সামলাতে পারে।
২. ডাটা হারায় না
করিম: কাফকা একবার মেসেজ নিলে সেটা হারায় না। যেমন ব্যাংকের রেকর্ড যেমন সেভ থাকে, কাফকায়ও সব মেসেজ সেভ থাকে।
রহিম: কতদিন থাকে?
করিম: যতদিন চাও! ৭ দিন, ৩০ দিন, বা চিরকালের জন্যও রাখতে পারো।
৩. স্কেলেবল
করিম: যেমন বাস টার্মিনালে যাত্রী বেড়ে গেলে আরো কাউন্টার খোলা হয়, কাফকায়ও ট্রাফিক বাড়লে আরো Broker বা Partition যোগ করা যায়।
কাফকার ব্যবহার
রহিম: কোথায় কোথায় ব্যবহার হয় এসব?
করিম: অনেক জায়গায়! যেমন:
১. Social Media
ফেসবুকে তুই লাইক দিলি → কাফকা → বন্ধুর নোটিফিকেশন
২. E-commerce
দারাজে অর্ডার দিলি → কাফকা → SMS, Email, Inventory Update
৩. Banking
বিকাশে টাকা পাঠালি → কাফকা → রিসিভারের নোটিফিকেশন, ব্যালেন্স আপডেট
৪. Gaming
PUBG তে কিল করলি → কাফকা → স্কোর আপডেট, ফ্রেন্ডদের নোটিফিকেশন
সহজ একটা উদাহরণ
করিম: ধর তুই একটা অনলাইন ফুড অর্ডার অ্যাপ বানাচ্ছিস।
Customer অর্ডার দেয় → Producer → Kafka → Consumer গুলো:
├── Restaurant (রান্নার অর্ডার)
├── Delivery Boy (ডেলিভারি নোটিস)
├── Payment (পেমেন্ট প্রসেস)
└── Customer (কনফার্মেশন SMS)
রহিম: ওয়াও! একটা অর্ডার একসাথে চারটা জায়গায় গেল!
করিম: হ্যাঁ! আর এটা এত দ্রুত হয় যে কাস্টমার বুঝতেই পারে না। অর্ডার দেওয়ার সাথে সাথেই সব কিছু শুরু হয়ে যায়।
কাফকা শেখার জন্য কি করতে হবে?
রহিম: এটা শিখতে হলে কি কি জানতে হবে?
করিম:
১. প্রোগ্রামিং: Java, Python, বা JavaScript জানলেই চলবে
২. Basic Networking: TCP/IP এর ধারণা
৩. Linux Commands: কারণ সার্ভারে কাজ করতে হয়
৪. JSON: ডাটা ফরম্যাট হিসেবে JSON ব্যবহার হয়
শেষ কথা
করিম: কাফকা শেখা মানে হলো আধুনিক সফটওয়্যার ডেভেলপমেন্টের একটা গুরুত্বপূর্ণ স্কিল শেখা। Netflix, Uber, LinkedIn সবাই কাফকা ব্যবহার করে।
রহিম: তাহলে আজকেই শুরু করি! কোথা থেকে শুরু করব?
করিম: প্রথমে কাফকার অফিসিয়াল ডকুমেন্টেশন পড়ো। তারপর একটা সিম্পল প্রজেক্ট দিয়ে হাতে-কলমে শেখো। মনে রেখো, প্র্যাকটিস ছাড়া কিছুই শেখা যায় না!
রহিম: ধন্যবাদ ভাই! খুব সহজভাবে বুঝালে।
করিম: কোনো সমস্যা হলে যোগাযোগ করিস। কাফকা শিখে তুইও বড় বড় কোম্পানিতে কাজ করতে পারবি!
এই ব্লগ পোস্টটি যদি তোমার ভালো লেগে থাকে, তাহলে শেয়ার করো এবং কমেন্টে জানাও তোমার মতামত!
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.