Hazelcast একটি ইন-মেমরি ডিস্ট্রিবিউটেড ডেটা গ্রিড এবং ডিস্ট্রিবিউটেড কম্পিউটিং প্ল্যাটফর্ম যা ডেটা স্টোরেজ, ক্যাশিং, এবং ক্লাস্টার পরিচালনার জন্য ব্যবহৃত হয়। একটি Hazelcast ক্লাস্টার সেটআপ করার মাধ্যমে একাধিক নোডে ডেটা ভাগ করা এবং সেই ডেটার উপর কার্যক্রম পরিচালনা করা সম্ভব হয়। Hazelcast ক্লাস্টার সেটআপ করার প্রক্রিয়াটি খুবই সরল, এবং এটি TCP/IP, Multicast, বা Kubernetes এর মাধ্যমে করা যেতে পারে।
এই টিউটোরিয়ালে, আমরা Hazelcast ক্লাস্টার সেটআপ এর ধাপগুলো এবং তার কনফিগারেশন পদ্ধতিগুলি আলোচনা করব।
Hazelcast ক্লাস্টার সেটআপের জন্য মূলত দুইটি পদ্ধতি রয়েছে: TCP/IP এবং Multicast। ক্লাস্টারগুলির মধ্যে যোগাযোগ সঠিকভাবে পরিচালনা করার জন্য এই দুটি পদ্ধতির মধ্যে যেকোনো একটি নির্বাচন করা যেতে পারে।
Hazelcast-এ TCP/IP ব্যবহার করে ক্লাস্টার সেটআপ করার জন্য আপনাকে ক্লাস্টারের নোডগুলি একটি নির্দিষ্ট IP ঠিকানা অথবা হোস্টনেম দ্বারা চিহ্নিত করতে হবে। TCP/IP পদ্ধতি বেশি নির্ভরযোগ্য এবং বিভিন্ন পরিবেশে কার্যকরী।
import com.hazelcast.config.Config;
import com.hazelcast.config.NetworkConfig;
import com.hazelcast.config.JoinConfig;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
public class TcpIpClusterSetup {
public static void main(String[] args) {
Config config = new Config();
// Enable TCP/IP
NetworkConfig networkConfig = config.getNetworkConfig();
JoinConfig joinConfig = networkConfig.getJoin();
joinConfig.getMulticastConfig().setEnabled(false); // Disable Multicast
joinConfig.getTcpIpConfig().setEnabled(true)
.addMember("192.168.1.100") // Add other cluster members here
.addMember("192.168.1.101");
// Start Hazelcast instance
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);
System.out.println("Hazelcast instance started with TCP/IP clustering");
}
}
কনফিগারেশন ব্যাখ্যা:
joinConfig.getTcpIpConfig().setEnabled(true)
: TCP/IP ক্লাস্টারিং সক্রিয় করে।.addMember("192.168.1.100")
: ক্লাস্টারের সদস্য হিসেবে নির্দিষ্ট IP অ্যাড্রেস যোগ করা হয়।getMulticastConfig().setEnabled(false)
: Multicast বন্ধ করা হয়, যেহেতু আমরা TCP/IP ব্যবহার করছি।ক্লাস্টারের সদস্যদের মধ্যে কমিউনিকেশন নিশ্চিত করার জন্য একই কনফিগারেশনটি বিভিন্ন হোস্টে রান করতে হবে। প্রতিটি হোস্টের IP ঠিকানা উল্লেখ করতে হবে।
Multicast পদ্ধতি দিয়ে ক্লাস্টারের নোডগুলি স্বয়ংক্রিয়ভাবে একে অপরকে সনাক্ত করে, এটি সাধারণত ছোট বা পরীক্ষামূলক ক্লাস্টারগুলির জন্য উপযুক্ত। তবে এটি নির্দিষ্ট নেটওয়ার্ক কনফিগারেশনে সীমাবদ্ধ থাকতে পারে (যেমন নেটওয়ার্কের ফায়ারওয়াল বা NAT বাধা)।
import com.hazelcast.config.Config;
import com.hazelcast.config.NetworkConfig;
import com.hazelcast.config.JoinConfig;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
public class MulticastClusterSetup {
public static void main(String[] args) {
Config config = new Config();
// Enable Multicast
NetworkConfig networkConfig = config.getNetworkConfig();
JoinConfig joinConfig = networkConfig.getJoin();
joinConfig.getMulticastConfig().setEnabled(true); // Enable Multicast
joinConfig.getTcpIpConfig().setEnabled(false); // Disable TCP/IP
// Start Hazelcast instance
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);
System.out.println("Hazelcast instance started with Multicast clustering");
}
}
কনফিগারেশন ব্যাখ্যা:
joinConfig.getMulticastConfig().setEnabled(true)
: Multicast ক্লাস্টারিং সক্রিয় করা হয়েছে।joinConfig.getTcpIpConfig().setEnabled(false)
: TCP/IP নিষ্ক্রিয় করা হয়েছে, যাতে শুধুমাত্র Multicast ব্যবহৃত হয়।Hazelcast ক্লাস্টারের সদস্যরা নিজেদের IP ঠিকানা সনাক্ত করতে Multicast ব্যবহার করে একে অপরের সাথে সংযুক্ত হয়।
Hazelcast Kubernetes-এ ব্যবহারের জন্যও আদর্শ। Kubernetes এ নোডগুলো অটোমেটিকভাবে একে অপরকে সনাক্ত করতে পারে এবং Hazelcast সিস্টেমটি ডাইনামিকভাবে স্কেল করতে পারে। Hazelcast ক্লাস্টার কনফিগার করতে Kubernetes এর জন্য hazelcast-kubernetes
কনফিগারেশন সেটআপ করতে হয়।
Hazelcast Kubernetes সেটআপের জন্য আপনাকে hazelcast-kubernetes
কনফিগারেশন ফাইল এবং Helm chart ব্যবহার করতে হবে।
Hazelcast এর Management Center হল একটি গ্রাফিকাল ইউজার ইন্টারফেস (GUI), যা ক্লাস্টারের নোড এবং ডেটা স্ট্রাকচার ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এটি ক্লাস্টারের পারফরম্যান্স মনিটরিং এবং ডায়াগনস্টিকসের জন্য সহায়ক।
start.sh
বা start.bat
ফাইলটি রান করুন। তারপর আপনার ওয়েব ব্রাউজারে http://localhost:8080
এ গিয়ে ক্লাস্টারের তথ্য দেখতে পারবেন।Hazelcast ক্লাস্টারের health monitoring এবং performance metrics গুরুত্বপূর্ণ। Hazelcast JMX (Java Management Extensions) এবং Prometheus integration এর মাধ্যমে এই কাজটি করতে সাহায্য করে।
// Enable JMX for monitoring
Config config = new Config();
config.getManagementCenterConfig().setEnabled(true).setUrl("http://localhost:8080");
এটি Management Center এর মাধ্যমে আপনার ক্লাস্টারের স্বাস্থ্য এবং পারফরম্যান্স পর্যালোচনা করার সুযোগ দেয়।
Hazelcast ক্লাস্টার সেটআপ করার জন্য দুটি মূল পদ্ধতি হল TCP/IP এবং Multicast। TCP/IP পদ্ধতি বেশি নির্ভরযোগ্য এবং বিভিন্ন প্ল্যাটফর্মে কার্যকরী, যেখানে Multicast পদ্ধতি সাধারণত ছোট ক্লাস্টারগুলির জন্য উপযুক্ত। Hazelcast এর Management Center এবং JMX পদ্ধতির মাধ্যমে ক্লাস্টারের স্বাস্থ্য এবং পারফরম্যান্স মনিটর করা যায়। এছাড়া, Kubernetes-এ Hazelcast ক্লাস্টার সেটআপের মাধ্যমে ডাইনামিক এবং স্কেলেবল সিস্টেম তৈরি করা যায়।
common.read_more