Zookeeper একটি ডিস্ট্রিবিউটেড কোঅর্ডিনেশন সিস্টেম যা সাধারণত Leader এবং Follower নোডের মাধ্যমে কাজ করে। Zookeeper-এর প্রধান ভূমিকা হলো একাধিক নোডের মধ্যে সিঙ্ক্রোনাইজেশন বজায় রাখা, এবং এটি Leader Election Algorithm এর মাধ্যমে একটি নোডকে Leader হিসেবে নির্বাচন করে, যা বাকি নোডগুলোকে Follower হিসেবে কাজ করতে নির্দেশনা দেয়। Zookeeper এ Leader এবং Follower নোডের জন্য কনফিগারেশন অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি সিস্টেমের কার্যকারিতা, ফেইলওভার, এবং স্ট্যাটেবল পারফরম্যান্স নিশ্চিত করে।
Zookeeper-এর Leader এবং Follower নোডের কনফিগারেশন
Zookeeper ক্লাস্টারে Leader এবং Follower নোডের জন্য কনফিগারেশন কিছু নির্দিষ্ট পদ্ধতিতে করা হয়। নিচে Zookeeper ক্লাস্টারে Leader এবং Follower নোডের কনফিগারেশন পদ্ধতির বিস্তারিত বর্ণনা করা হয়েছে।
Leader Node
Zookeeper ক্লাস্টারে Leader Node হলো সেই নোড যা সিদ্ধান্ত গ্রহণের জন্য দায়ী এবং সিস্টেমের অন্যান্য Follower নোডগুলোর সাথে সমন্বয় রক্ষা করে। Leader Node-টি সাধারণত write operations সম্পাদন করে এবং অন্যান্য নোডকে কমান্ড প্রেরণ করে।
- Leader Election:
- Zookeeper-এ Leader নির্বাচন প্রক্রিয়া ZNode এবং sequential node ব্যবহার করে। প্রতিটি ক্লায়েন্ট যখন Zookeeper-এর সাথে যোগাযোগ করে, তখন সেটি একটি sequential ZNode তৈরি করে এবং যখন সবচেয়ে কম নামের ZNode তৈরি হয়, তখন তা Leader হিসেবে নির্বাচিত হয়।
- Write Operations:
- Leader Node-টি write operations পরিচালনা করে, অর্থাৎ এটি সেই নোড যা সমস্ত write request গ্রহণ করে এবং Follower নোডগুলোকে আপডেট করে।
- Zookeeper Configuration (Leader):
- Leader নোডের জন্য সাধারণত কোনো অতিরিক্ত কনফিগারেশন প্রয়োজন হয় না, তবে এটি Zookeeper ক্লাস্টারের মধ্যে majority (বেশি অংশের) নোড দ্বারা নির্বাচিত হয়। ক্লাস্টারে নোডের সংখ্যা odd হলে এটি আরও কার্যকরী হয়ে ওঠে।
Follower Node
Zookeeper ক্লাস্টারের Follower Nodes হলো সেই নোডগুলো যা Leader থেকে নির্দেশনা পায় এবং read operations সম্পাদন করে। Follower Nodes-এ সাধারণত write operations নিষিদ্ধ থাকে। তারা শুধু Leader থেকে পরিবর্তিত ডেটা গ্রহণ করে এবং নিজেদের ডাটাবেস আপডেট রাখে।
- Data Synchronization:
- Follower Nodes তাদের ডেটা সিঙ্ক্রোনাইজ করার জন্য Leader থেকে নোটিফিকেশন গ্রহণ করে। যখন Leader কোনো পরিবর্তন বা আপডেট করে, তখন Follower নোডগুলো সেটি গ্রহণ করে এবং নিজেদের ডেটা আপডেট করে।
- Read Operations:
- Follower Nodes সাধারণত read operations পরিচালনা করে। তারা Leader থেকে সিঙ্ক্রোনাইজড ডেটা পেয়ে ক্লায়েন্টদের রিড রিকোয়েস্ট প্রক্রিয়া করে।
- Zookeeper Configuration (Follower):
- Follower Nodes এর কনফিগারেশন সাধারণত read-only mode থাকে, এবং তারা write operations কেবল তখনই গ্রহণ করে যখন Leader থেকে নির্দেশনা পাওয়া যায়।
Zookeeper Cluster Configuration
Zookeeper ক্লাস্টারে সাধারণত odd number of nodes রাখা হয়, যেমন 3, 5, 7 নোড, যাতে ক্লাস্টারের মধ্যে majority quorum নির্ধারণ করা যায়। এই কনফিগারেশন ক্লাস্টারকে অধিক কার্যকরী এবং নির্ভরযোগ্য রাখে।
- Cluster Size:
- Zookeeper ক্লাস্টারে সাধারণত কমপক্ষে 3টি নোড থাকতে হবে (3, 5, 7 বা আরো বেশি) যাতে majority quorum এবং fault tolerance নিশ্চিত করা যায়।
Server Configuration:
- Zookeeper ক্লাস্টারের প্রতিটি নোডের জন্য সাধারণত zoo.cfg কনফিগারেশন ফাইল ব্যবহার করা হয়। এই ফাইলের মধ্যে প্রতিটি সার্ভারের জন্য আইপি অ্যাড্রেস এবং পোর্ট নম্বর নির্ধারণ করা হয়।
উদাহরণস্বরূপ:
server.1=192.168.1.1:2888:3888 server.2=192.168.1.2:2888:3888 server.3=192.168.1.3:2888:3888এখানে, 192.168.1.1, 192.168.1.2, এবং 192.168.1.3 হল ক্লাস্টারের তিনটি নোডের আইপি অ্যাড্রেস।
- Quorum and Majority:
- Zookeeper-এর ক্লাস্টার কার্যকরীভাবে কাজ করার জন্য quorum এবং majority প্রয়োজন। এর মানে হলো, শুধুমাত্র একটি নির্দিষ্ট সংখ্যক নোড সমর্থন করলে, সিস্টেমের সিদ্ধান্ত গ্রহণ প্রক্রিয়া কার্যকরী হতে পারে।
Zookeeper ক্লাস্টারে Leader এবং Follower এর ভূমিকা
- Leader:
- Write operations পরিচালনা করে
- Coordination এবং decision making রক্ষায় গুরুত্বপূর্ণ
- Client requests কে পরিচালনা করে
- Follower:
- Read operations সম্পাদন করে
- Data synchronization জন্য Leader থেকে আপডেট গ্রহণ করে
- Standby mode এ থাকে এবং write requests পরিচালনা করে না
সারাংশ
Zookeeper-এ Leader এবং Follower নোডের জন্য কনফিগারেশন সিস্টেমের কার্যকারিতা এবং ফেইলওভার ম্যানেজমেন্ট নিশ্চিত করে। Leader নোড write operations পরিচালনা করে এবং Follower নোড গুলি সেগুলির আপডেট গ্রহণ করে read operations সম্পাদন করে। Zookeeper এর ক্লাস্টারে majority quorum ব্যবস্থাপনার মাধ্যমে ফেইলওভার এবং সিস্টেমের স্থিতিশীলতা নিশ্চিত হয়, যা একটি শক্তিশালী ডিস্ট্রিবিউটেড সিস্টেম তৈরি করতে সাহায্য করে।
Read more