Apache Flink-এ Fault Tolerance কনফিগারেশন হল Flink অ্যাপ্লিকেশনগুলিকে ক্র্যাশ বা ত্রুটি থেকে পুনরুদ্ধার করতে সক্ষম করা। Flink স্ট্রিম প্রসেসিং প্ল্যাটফর্মে বিল্ট-ইন ফল্ট টলারেন্স সমর্থন রয়েছে যা অ্যাপ্লিকেশনের স্থায়ীত্ব এবং নির্ভরযোগ্যতা নিশ্চিত করে। Flink মূলত Checkpoint এবং Savepoint মেকানিজম ব্যবহার করে ফল্ট টলারেন্স নিশ্চিত করে।
Checkpointing কনফিগারেশন:
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// Checkpointing সক্রিয় করা
env.enableCheckpointing(5000); // 5000 মিলিসেকেন্ড (৫ সেকেন্ড) অন্তর Checkpoint নেবে
Checkpoint Storage কনফিগারেশন:
env.getCheckpointConfig().setCheckpointStorage("hdfs:///flink-checkpoints");
State Backend কনফিগারেশন:
HashMapStateBackend
ব্যবহার করা হয়েছে। এছাড়াও, RocksDBStateBackend
ব্যবহার করে উন্নত পারফরম্যান্স পাওয়া যায়।env.setStateBackend(new HashMapStateBackend());
env.getCheckpointConfig().setCheckpointStorage(new FileSystemCheckpointStorage("file:///tmp/flink-checkpoints"));
Savepoint কনফিগারেশন:
./bin/flink savepoint <jobId> <savepointDirectory>
নিচের উদাহরণটি একটি Checkpoint-enabled Flink অ্যাপ্লিকেশন:
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
public class FaultTolerantJob {
public static void main(String[] args) throws Exception {
// Execution Environment তৈরি করা
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// Checkpointing সক্রিয় করা
env.enableCheckpointing(10000); // ১০ সেকেন্ড অন্তর Checkpoint
// State Backend সেট করা
env.setStateBackend(new HashMapStateBackend());
env.getCheckpointConfig().setCheckpointStorage(new FileSystemCheckpointStorage("file:///tmp/flink-checkpoints"));
// একটি ডাটা সোর্স সেট করা (উদাহরণস্বরূপ)
env.fromElements(1, 2, 3, 4, 5)
.map(value -> value * 2)
.print();
// কাজটি শুরু করা
env.execute("Fault Tolerant Flink Job");
}
}
env.getCheckpointConfig().setCheckpointTimeout(60000); // ৬০ সেকেন্ড টাইমআউট
এইভাবে, Flink-এর ফল্ট টলারেন্স মেকানিজম কনফিগার এবং ব্যবহার করে, আপনি একটি স্থিতিশীল এবং নির্ভরযোগ্য স্ট্রিম প্রসেসিং অ্যাপ্লিকেশন তৈরি করতে পারেন।
আরও দেখুন...