অ্যাপাচি কাফকা একটি ডিস্ট্রিবিউটেড স্ট্রিমিং প্ল্যাটফর্ম যা Zookeeper এবং Kafka Broker এর মাধ্যমে কাজ করে। কাফকা ক্লাস্টারের সঠিক কার্যক্রম নিশ্চিত করতে Zookeeper এবং Kafka Broker-এর সঠিক কনফিগারেশন অপরিহার্য। নিচে এই দুই উপাদান কনফিগারেশনের বিষয়ে বিস্তারিত আলোচনা করা হলো।
Zookeeper কনফিগারেশন
Zookeeper হল একটি কোঅর্ডিনেটর সার্ভিস যা কাফকা ক্লাস্টারের মেটাডেটা এবং কোঅর্ডিনেশন ম্যানেজ করতে ব্যবহৃত হয়। এটি কাফকা ক্লাস্টারের ব্রোকার এবং প্যার্টিশনগুলোর মধ্যে সিঙ্ক্রোনাইজেশন এবং রিলায়েবিলিটি বজায় রাখে।
১. Zookeeper সার্ভার ইনস্টলেশন এবং কনফিগারেশন
- Zookeeper ডাউনলোড: প্রথমে Zookeeper ডাউনলোড করুন:
Zookeeper কনফিগারেশন ফাইল: Zookeeper কনফিগারেশন ফাইল সাধারণত
zoo.cfgনামক একটি ফাইল থাকে, যা Zookeeper ডিরেক্টরিরconfফোল্ডারে থাকে। এই ফাইলটি প্রয়োজনীয় কনফিগারেশন সেটিংসের জন্য ব্যবহৃত হয়।এখানে কিছু গুরুত্বপূর্ণ কনফিগারেশন:
dataDir=/var/lib/zookeeper: Zookeeper ডেটা সংরক্ষণের লোকেশন নির্ধারণ করে।clientPort=2181: Zookeeper সার্ভারের ক্লায়েন্ট পোর্ট, যা অন্যান্য সিস্টেমের সাথে যোগাযোগের জন্য ব্যবহৃত হয়।tickTime=2000: Zookeeper সিস্টেমের টাইমআউট পরামিতি, এখানে এটি 2000 মিলিসেকেন্ড।initLimit=10: ক্লাস্টারের অন্যান্য সার্ভারের সাথে সিঙ্ক্রোনাইজেশন ইনিশিয়াল টাইমসীমা।syncLimit=5: সিঙ্ক্রোনাইজেশন পরামিতি, সার্ভাররা কত দ্রুত সিঙ্ক্রোনাইজ হবে তা নির্ধারণ করে।
Zookeeper সার্ভার চালানো: Zookeeper চালাতে নিম্নলিখিত কমান্ড ব্যবহার করা হয়:
bin/zkServer.sh start
২. Zookeeper মেইনটেনেন্স:
- স্ট্যাটাস চেক:
bin/zkServer.sh status - স্টপ করা:
bin/zkServer.sh stop
Kafka Broker কনফিগারেশন
কাফকা ব্রোকারগুলি হলো কাফকা ক্লাস্টারের মূল উপাদান। একটি কাফকা ক্লাস্টারে একাধিক ব্রোকার থাকতে পারে, এবং এগুলি একে অপরের সাথে যোগাযোগ করে ডেটা ট্রান্সফার এবং মেটাডেটা পরিচালনা করে।
১. Kafka Broker কনফিগারেশন ফাইল:
কাফকা ব্রোকারের কনফিগারেশন সাধারণত server.properties ফাইলে থাকে। এটি কাফকার ইনস্টলেশন ডিরেক্টরিতে অবস্থিত থাকে। এখানে কিছু গুরুত্বপূর্ণ কনফিগারেশন সেটিংস দেওয়া হলো:
broker.id: প্রতিটি কাফকা ব্রোকারের জন্য একটি ইউনিক আইডি দিতে হয়, উদাহরণস্বরূপ:
broker.id=1listeners: ব্রোকারের সাথে কনট্যাক্ট করার জন্য পোর্টের নাম ও ঠিকানা সেট করা হয়।
listeners=PLAINTEXT://0.0.0.0:9092এখানে
PLAINTEXTঅর্থ হল সিকিউরিটি ছাড়া সাধারণ পোর্ট 9092 তে কাফকা শোনাচ্ছে।log.dirs: কাফকা যেখানে ডেটা স্টোর করবে সেই লোকেশন নির্ধারণ করে:
log.dirs=/var/lib/kafka/datazookeeper.connect: কাফকা ব্রোকার Zookeeper সার্ভারের সাথে যোগাযোগ করতে এই কনফিগারেশন ব্যবহার করে:
zookeeper.connect=localhost:2181এখানে
localhost:2181হলো Zookeeper সার্ভারের লোকেশন ও পোর্ট নম্বর।num.partitions: ডিফল্টভাবে কতটি পার্টিশন হবে তা নির্ধারণ করে:
num.partitions=1log.retention.hours: কাফকা কত সময় পর্যন্ত ডেটা রাখবে, যেমন 168 ঘণ্টা (৭ দিন):
log.retention.hours=168
২. Kafka Broker চালানো:
কাফকা ব্রোকার চালাতে নিম্নলিখিত কমান্ড ব্যবহার করা হয়:
bin/kafka-server-start.sh config/server.properties
৩. একাধিক ব্রোকার কনফিগারেশন:
কাফকা ক্লাস্টারে একাধিক ব্রোকার সেটআপ করার সময়, প্রতিটি ব্রোকারের জন্য আলাদা server.properties কনফিগারেশন ফাইল ব্যবহার করতে হয়। একাধিক ব্রোকার সেটআপ করার সময় ব্রোকার আইডি এবং Zookeeper কনফিগারেশন পরিবর্তন করতে হয়। উদাহরণস্বরূপ:
- ব্রোকার 1:
broker.id=1,zookeeper.connect=localhost:2181 - ব্রোকার 2:
broker.id=2,zookeeper.connect=localhost:2181
Zookeeper এবং Kafka Broker কনফিগারেশনের মধ্যে সম্পর্ক
- Zookeeper ক্লাস্টার: কাফকা ব্রোকারগুলির মধ্যে Zookeeper একটি কেন্দ্রীয় ভূমিকা পালন করে। এটি কাফকা ব্রোকারদের মধ্যে মেটাডেটা সিঙ্ক্রোনাইজ এবং কোঅর্ডিনেশন করে থাকে।
- Kafka Broker: প্রতিটি ব্রোকার একটি নির্দিষ্ট ডেটা পার্টিশন এবং টপিকের জন্য দায়িত্বশীল থাকে। এটি Zookeeper-এর সাথে সংযুক্ত হয়ে ডেটা ব্যবস্থাপনা ও ডিসট্রিবিউশন নিশ্চিত করে।
সারাংশ
Zookeeper এবং Kafka Broker কনফিগারেশন কাফকা ক্লাস্টারের সঠিক কার্যক্রম নিশ্চিত করতে অত্যন্ত গুরুত্বপূর্ণ। Zookeeper সিস্টেমের কোঅর্ডিনেশন এবং মেটাডেটা ম্যানেজ করে, এবং Kafka Broker ডেটা স্টোর এবং পরিবহন ব্যবস্থা পরিচালনা করে। Zookeeper এবং Kafka Broker এর কনফিগারেশন সঠিকভাবে সেটআপ করলে কাফকা ক্লাস্টার কার্যকরভাবে কাজ করবে, এবং ডেটা ট্রান্সফার ও প্রসেসিং দ্রুত ও নির্ভরযোগ্য হবে।
Read more