সরাসরি প্রধান সামগ্রীতে চলে যান

Kafka কী এবং কেন এটি ব্যবহার করা হয় তার সহজ গাইড

Introduction

আজকের দুনিয়ায় আমরা যখন উবার ইটস (Uber Eats) বা জোম্যাটো (Zomato) থেকে খাবার অর্ডার করি, তখন পর্দার আড়ালে হাজার হাজার কাজ একসাথে চলতে থাকে। আপনি একটা ক্লিক করলেন আর সাথে সাথে রেস্টুরেন্ট জানতে পারল, ডেলিভারি বয় রেডি হলো এবং আপনার ফোনে মেসেজ চলে এলো। এই বিশাল এবং জটিল কাজগুলো খুব সহজে এবং দ্রুত করার জন্যই Kafka (কাফকা) ব্যবহার করা হয়। সহজ কথায়, এটি ডাটা বা মেসেজ আদান-প্রদান করার একটি সুপার-ফাস্ট মাধ্যম।


কেন আমাদের Kafka দরকার? (প্রথাগত সিস্টেমের সমস্যা)

আগেকার দিনে সফটওয়্যারগুলো "Tightly Coupled" বা একে অপরের ওপর খুব বেশি নির্ভরশীল ছিল।

  • রেফারেন্স: [01:21] - ভিডিওতে জোম্যাটোর উদাহরণ দিয়ে এটি বোঝানো হয়েছে।

  • বিস্তারিত: ধরুন, আপনি খাবার অর্ডার করলেন। অর্ডার প্রসেসিং সার্ভিস এখন রেস্টুরেন্টকে জানাবে, তারপর ডেলিভারি সার্ভিসকে বলবে, তারপর নোটিফিকেশন পাঠাবে। যদি কোনো কারণে নোটিফিকেশন সার্ভিস কাজ না করে বা স্লো হয়ে যায়, তাহলে পুরো অর্ডার প্রসেসটাই আটকে যাবে। এটাকে বলা হয় Blocking Call। ট্রাফিক জ্যামের মতো, একটা গাড়ি আটকে গেলে পেছনের সব গাড়ি আটকে যায়।

  • সহজ অর্থ:

    • Tightly Coupled: যখন একটি অংশ কাজ না করলে পুরো সিস্টেম অচল হয়ে যায়।

    • Synchronous (সিংক্রোনাস): যখন একটার পর একটা কাজ লাইনে দাঁড়িয়ে করতে হয়, আগের কাজ শেষ না হলে পরেরটা শুরু করা যায় না।


Kafka কী এবং এটি কীভাবে কাজ করে?

কাফকা হলো একটি Distributed Event Streaming Platform। এটি অনেকটা আপনার বাড়ির পোস্ট বক্স বা ইমেইল ইনবক্সের মতো।

  • রেফারেন্স: [04:45] - ভিডিওতে মেসেজ বাফারের ধারণাটি দেখুন।

  • বিস্তারিত: এখানে সার্ভিসগুলো সরাসরি একে অপরকে কল করে না। অর্ডার সার্ভিস শুধু একটা মেসেজ লিখে কাফকার "বক্সে" রেখে দেয় (একে বলা হয় Producer)। এরপর রেস্টুরেন্ট সার্ভিস বা ডেলিভারি সার্ভিস তাদের সময়মতো সেই বক্স থেকে মেসেজ পড়ে নেয় (একে বলা হয় Consumer)। কেউ যদি স্লো থাকে, তাতে অন্য কারো কাজ আটকে থাকে না।

  • সহজ অর্থ:

    • Producer (প্রডিউসার): যে ডাটা বা খবর তৈরি করে পাঠায়।

    • Consumer (কনজিউমার): যে সেই খবরটা পড়ে কাজ করে।

    • Event (ইভেন্ট): যেকোনো একটি ছোট তথ্য বা ঘটনা (যেমন: "অর্ডার কনফার্ম হয়েছে")।


Kafka-তে কোডিং এর ধারণা

কাফকা ব্যবহার করে কোড করা অনেক সহজ। নিচে একটি সহজ পাইথন কোডের উদাহরণ দেওয়া হলো:

Producer Code (মেসেজ পাঠানো):

Python

# এটি একটি কাল্পনিক উদাহরণ যা বোঝায় কীভাবে মেসেজ পাঠানো হয়
from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers='localhost:9092')
# 'orders' নামের টপিক বা বক্সে মেসেজ পাঠানো হচ্ছে
producer.send('orders', b'New Order: Paneer Masala, User ID: 101') 
  • ব্যাখ্যা: এই কোডটি ব্যবহার করে আমরা ডাটাবেসে অর্ডার সেভ করার পর কাফকাতে একটি মেসেজ পাঠিয়ে দিচ্ছি। এরপর আমাদের অর্ডার সার্ভিস ফ্রি, সে পরের অর্ডারের জন্য তৈরি।

Consumer Code (মেসেজ পড়া):

Python

from kafka import KafkaConsumer

consumer = KafkaConsumer('orders')
for message in consumer:
    # এখানে মেসেজ অনুযায়ী পরবর্তী কাজ (যেমন রান্না শুরু করা) হবে
    print(f"Received: {message.value}") 
  • ব্যাখ্যা: এটি একটি লুপের মতো যা সবসময় চেক করতে থাকে নতুন কোনো মেসেজ এসেছে কি না। মেসেজ পেলেই সেটি নিয়ে কাজ শুরু করে।

Kafka বনাম সাধারণ Message Queue (যেমন RabbitMQ)

অনেকে মনে করেন কাফকা আর সাধারণ মেসেজ কিউ একই জিনিস, কিন্তু এদের মধ্যে বড় পার্থক্য আছে।

  • রেফারেন্স: [14:52] - ভিডিওতে সামোসা এবং ইউটিউব ভিডিওর উদাহরণ।

  • বিস্তারিত:

    • RabbitMQ (মেসেজ কিউ): এটি অনেকটা সামোসা খাওয়ার মতো। একবার খেয়ে ফেললে ওটা শেষ, অন্য কেউ আর খেতে পারবে না। অর্থাৎ মেসেজ একবার পড়া হয়ে গেলে সিস্টেম থেকে মুছে যায়।

    • Kafka: এটি অনেকটা ইউটিউব ভিডিওর মতো। আপনি একবার ভিডিও দেখলেন মানে এই নয় যে ভিডিও ডিলিট হয়ে গেল। অন্যরাও দেখতে পারবে এবং আপনি চাইলে আবার টেনে (Replay) দেখতে পারবেন। একে বলা হয় Message Retention


Kafka এর আসল ব্যবহার (Real-world Use Cases)

কাফকা বড় বড় কোম্পানিগুলোতে কীভাবে ব্যবহার হয়:

  1. Netflix: আপনি যখন কোনো মুভিতে লাইক দেন বা ক্লিক করেন, সেই তথ্য কাফকার মাধ্যমে রিকমেন্ডেশন ইঞ্জিনে যায়, যাতে আপনাকে পরবর্তী ভালো মুভি সাজেস্ট করা যায়। [12:04]

  2. Tesla: টেসলা গাড়ির সেন্সর থেকে প্রতি সেকেন্ডে প্রচুর ডাটা আসে। কাফকা সেই ডাটাগুলো প্রসেস করে গাড়ির স্বাস্থ্য বা রাস্তার অবস্থা বুঝতে সাহায্য করে। [12:47]

  3. Uber & LinkedIn: উবার প্রতি সেকেন্ডে ট্রিলিয়ন ট্রিলিয়ন মেসেজ কাফকার মাধ্যমে হ্যান্ডেল করে। [14:23]


আমার বিশ্লেষণ এবং পরামর্শ

আমার চিন্তা (Thinking): কাফকা কেবল একটি টুল নয়, এটি সিস্টেম ডিজাইনের একটি আধুনিক চিন্তা। এটি সিস্টেমকে অনেক বেশি শক্তিশালী (Scalable) করে তোলে।

কখন ব্যবহার করবেন:

  • যখন আপনার কাছে ডাটার পরিমাণ অনেক বেশি (মিলিয়ন বা ট্রিলিয়ন)।

  • যখন আপনার সিস্টেমের কোনো সার্ভিস বন্ধ থাকলেও অন্য সার্ভিসগুলো সচল রাখা জরুরি।

  • পুরানো ডাটা যদি পরে আবার প্রসেস করার দরকার হয়।

বিকল্প বা পরামর্শ (Alternatives):

  • আপনার যদি খুব ছোট ডাটা হয় (দিনে কয়েক হাজার মেসেজ), তবে কাফকা ব্যবহার না করে RabbitMQ ব্যবহার করা ভালো, কারণ কাফকা সেটআপ করা কিছুটা জটিল হতে পারে।

  • সরাসরি REST API কল করাও খারাপ নয় যদি আপনার সিস্টেম খুব সিম্পল হয়।

উপসংহার: আধুনিক সফটওয়্যার ইঞ্জিনিয়ারিং শিখতে চাইলে কাফকা সম্পর্কে জানা এখন বাধ্যতামূলক। এটি সিস্টেমকে জ্যামমুক্ত রেখে দ্রুতগতিতে কাজ করতে সাহায্য করে।

[

Kafka Simply Explained

codebasics · 57K views

](http://www.youtube.com/watch?v=d-NJTcTvyhw)

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

সিজ্জিন (Sijjin) vs ইল্লিয়িন (Illiyin) পার্থক্য Difference

Sijjin (سِجِّين) এবং Illiyin (عِلِّيِّين) —এ দুটি শব্দ কুরআনে এসেছে এবং দুটোই মানুষের আমলনামা সংরক্ষণ সম্পর্কিত স্থানকে নির্দেশ করে। ১. সিজ্জিন (Sijjin) সিজ্জিন হলো পাপীদের (কাফের, মুনাফিক ও দুরাচারীদের) আমলনামা সংরক্ষণের স্থান। এটি সাত তলদেশের নীচে এক কারাগার বা অন্ধকার জগতে অবস্থিত বলে উল্লেখ রয়েছে। সূরা আল-মুতাফফিফীন (৮৩:৭-৯) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْفُجَّارِ لَفِي سِجِّينٍ ۝ وَمَا أَدْرَاكَ مَا سِجِّينٌ ۝ كِتَابٌ مَرْقُومٌ" অর্থ: "না, পাপীদের আমলনামা সিজ্জিনে সংরক্ষিত। তুমি কি জানো, সিজ্জিন কী? এটি এক লিখিত দলিল।" সিজ্জিনকে একটি কারাগার, সংকীর্ণ স্থান, বা নিচের স্তরে অবস্থিত এক অন্ধকার দুনিয়া হিসেবে ব্যাখ্যা করা হয়। ২. ইল্লিয়িন (Illiyin) ইল্লিয়িন হলো সৎকর্মশীলদের (মুমিন ও নেককারদের) আমলনামা সংরক্ষণের স্থান । এটি সপ্তম আসমানের ওপরে সংরক্ষিত এক সম্মানিত স্থান। সূরা আল-মুতাফফিফীন (৮৩:১৮-২১) তে বলা হয়েছে: "كَلَّا إِنَّ كِتَابَ الْأَبْرَارِ لَفِي عِلِّيِّينَ ۝ وَمَا أَدْرَاكَ مَا عِلِّيُّونَ ۝ كِتَابٌ مَرْقُومٌ ۝ يَش...

তারাবিহ সমগ্র - প্রথম আলো

রামাদান ২০২৪ উপলক্ষে প্রথম আলোর নিয়মিত আয়োজন - খতমে তারাবিহ'র সূরা গুলো নিয়ে সংক্ষিপ্ত আলোচনা'র লিংক  নিচে দেওয়া হলো।  লিংকে ক্লিক করলেই আপনাকে আলোচনা তে নিয়ে যাবে। তারাবিহ: ১ | একটি খুন ও গাভি নিয়ে বনি ইসরাইলের বাড়াবাড়ি তারাবিহ: ২ | নারীর মর্যাদা ও অধিকার এবং অলৌকিক তিন ঘটনা তারাবিহ: ৩ | যে ১৪ নারীকে বিয়ে করা হারাম তারাবিতে: ১২ | মহানবী (সা.)–এর আকাশভ্রমণ এবং আসহাবে কাহাফের কাহিনি

রেডমি নোট ৯ এর বিস্তারিত | Redmi Note 9 in Bangla

৩০ এপ্রিল, ২০২০ এ শাওমির ঘোষনা আসে এই ফোনটি নিয়ে। কিন্তু ফোনটি মার্কেটে আসে মে মাসের শেষের দিকে৷ করোনার কারনে ফোনটি বাংলাদেশে আসতে আরো সময় নেয়। বর্তমানে বাংলাদেশে আন অফিশিয়াল ভাবে ফোনটি পাওয়া যাচ্ছে৷ বাংলাদেশে অফিশিয়াল ভাবে এখনো ফোনটি আসার তথ্য নেয়৷ চলুন ফোনটি নিয়ে বিস্তারিত আলোচনা করা যাক। শাওমি নোট সিরিজের ফোন বের করে এদের রেডমি নামে সাব ব্যান্ড৷ এদের কাজ হল এই নোট সিরিজ নিয়ে কাজ করা৷ প্রতিবছর নোট সিরিজের ১/২ টা ফোন বাজারে আসে। সাথে সেই ফোন গুলার বিভিন্ন ভার্সন (যেমন - র‍্যাম ও রমের ভিত্তিতে) বাজারে আসে। এই বছরও তারা রেডমি সিরিজের নোট ৯ বাজারে আনে। এই বছর হয়তো এই সিরিজের আরো ফোন বাজারে আসবে। ডিস্পলেঃ ফোনটির ডিসপ্লে সাইজ ৬.৫৩ ইঞ্চি। এতে আইপিএস এলসিডি ডিসপ্লে ব্যবহার করা হয়েছে। এই ফোনের ডিসপ্লে প্রটেকশন হিসেবে আছে গরিলা গ্লাস ফাইভ। স্ক্রিন আর ফোনের বডির অনুপাত প্রায় ৮৩.৫%। এই ফোনের ডিসপ্লে ফুলএইচডি মানে ১০৮০পি। এই ডিস্পলের দৈর্ঘ্য ১৯.৫ একক এবং প্রস্থ হল ৯ একক। এত বড় ফোনের কারনে এই ফোনের পিপি আই ডেনসিটি ৩৯৫। যা একটু কম। প্লাটফর্মঃ এই ফোনের অপারেটিং সিস্টেম এন্ড্রয়েড ১০ এবং এর...