Hazelcast-এ EntryListener, ItemListener, এবং MapListener হল ইভেন্ট-ভিত্তিক শ্রোতা (listener) যা ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারের পরিবর্তন বা ইভেন্টগুলি মনিটর করতে ব্যবহৃত হয়। এই লিসেনারগুলির মাধ্যমে আপনি ডেটা পরিবর্তন, যোগ বা মুছে ফেলার সময় দ্রুত প্রতিক্রিয়া জানাতে পারেন এবং একটি রিয়েল-টাইম ব্যবস্থায় সিস্টেমের অবস্থা ট্র্যাক করতে পারেন।
Hazelcast ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার যেমন IMap
, IQueue
, ISet
ইত্যাদির জন্য বিভিন্ন ধরণের ইভেন্ট শোনা যায়। আপনি যখন একটি ডেটা স্ট্রাকচারে কোনো পরিবর্তন করবেন, তখন এই listeners আপনাকে সেই পরিবর্তন সম্পর্কে অবহিত করবে।
EntryListener হল একটি ইন্টারফেস যা IMap (ডিস্ট্রিবিউটেড ম্যাপ) এর এন্ট্রি পরিবর্তন মনিটর করতে ব্যবহৃত হয়। এটি put, remove, update, evict ইত্যাদি অপারেশনগুলির সময় ইভেন্ট শোনার জন্য ব্যবহৃত হয়।
import com.hazelcast.core.EntryListener;
import com.hazelcast.map.EntryEvent;
import com.hazelcast.map.IMap;
public class MyEntryListener implements EntryListener<String, String> {
@Override
public void entryAdded(EntryEvent<String, String> event) {
System.out.println("Entry added: " + event.getKey() + " = " + event.getValue());
}
@Override
public void entryRemoved(EntryEvent<String, String> event) {
System.out.println("Entry removed: " + event.getKey());
}
@Override
public void entryUpdated(EntryEvent<String, String> event) {
System.out.println("Entry updated: " + event.getKey() + " = " + event.getValue());
}
@Override
public void entryEvicted(EntryEvent<String, String> event) {
System.out.println("Entry evicted: " + event.getKey());
}
}
এখানে, EntryListener ইন্টারফেসে চারটি প্রধান ইভেন্ট মেথড রয়েছে:
IMap<String, String> map = hazelcastInstance.getMap("exampleMap");
map.addEntryListener(new MyEntryListener(), true); // true for synchronous
ItemListener হল একটি ইন্টারফেস যা IQueue, ISet এবং IList এর মতো ডিস্ট্রিবিউটেড কালেকশন এর জন্য ব্যবহৃত হয়। এটি add, remove, clear ইত্যাদি অপারেশনের সময় ইভেন্ট শোনার জন্য ব্যবহৃত হয়।
import com.hazelcast.core.ItemEvent;
import com.hazelcast.core.ItemListener;
import com.hazelcast.collection.IQueue;
public class MyItemListener implements ItemListener<String> {
@Override
public void itemAdded(ItemEvent<String> item) {
System.out.println("Item added: " + item.getItem());
}
@Override
public void itemRemoved(ItemEvent<String> item) {
System.out.println("Item removed: " + item.getItem());
}
}
এখানে, ItemListener ইন্টারফেসে দুটি প্রধান ইভেন্ট মেথড রয়েছে:
IQueue<String> queue = hazelcastInstance.getQueue("exampleQueue");
queue.addItemListener(new MyItemListener(), true); // true for synchronous
MapListener হল একটি ইন্টারফেস যা IMap এর জন্য ব্যবহৃত হয় এবং এটি ম্যাপের পরিবর্তন, যেমন put, remove, clear ইত্যাদি ইভেন্ট মনিটর করে। যদিও EntryListener ইন্টারফেসটি বেশি ব্যবহৃত হয়, MapListener এছাড়াও ব্যবহার করা যেতে পারে যদি আপনি সম্পূর্ণ ম্যাপের পরিবর্তন শোনার প্রয়োজন অনুভব করেন।
import com.hazelcast.core.MapEvent;
import com.hazelcast.core.MapListener;
import com.hazelcast.map.IMap;
public class MyMapListener implements MapListener {
@Override
public void mapCleared(MapEvent event) {
System.out.println("Map cleared");
}
@Override
public void mapEvicted(MapEvent event) {
System.out.println("Map evicted");
}
}
এখানে, MapListener ইন্টারফেসে দুটি প্রধান ইভেন্ট মেথড রয়েছে:
IMap<String, String> map = hazelcastInstance.getMap("exampleMap");
map.addMapListener(new MyMapListener());
বৈশিষ্ট্য | EntryListener | ItemListener | MapListener |
---|---|---|---|
ব্যবহার | IMap এর এন্ট্রি পরিবর্তন মনিটর করতে | IQueue, ISet, IList এর আইটেম পরিবর্তন | IMap এর পুরো ম্যাপ পরিবর্তন |
ইভেন্ট | EntryAdded, EntryRemoved, EntryUpdated, EntryEvicted | ItemAdded, ItemRemoved | MapCleared, MapEvicted |
অপারেশন | ডেটা স্ট্রাকচারের এন্ট্রি (key-value) এর উপর কাজ করে | আইটেম যোগ বা মুছে ফেলার উপর কাজ করে | পুরো ম্যাপ বা এর কোনো অংশের পরিবর্তন |
সিনক্রোনাইজেশন | সিঙ্ক্রোনাস বা অ্যাসিনক্রোনাসভাবে কাজ করা যায় | সিঙ্ক্রোনাস বা অ্যাসিনক্রোনাসভাবে কাজ করা যায় | সাধারণত অ্যাসিনক্রোনাস, তবে সিঙ্ক্রোনাসও হতে পারে |
EntryListener, ItemListener, এবং MapListener হল Hazelcast এর ইভেন্ট-ভিত্তিক শ্রোতা (listeners) যা ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারের উপর কার্যকরী পরিবর্তন বা ইভেন্টগুলি মনিটর করতে ব্যবহৃত হয়। EntryListener একক এন্ট্রি পরিবর্তন মনিটর করতে, ItemListener ডিস্ট্রিবিউটেড কালেকশনে আইটেম যোগ বা মুছে ফেলা, এবং MapListener পুরো ম্যাপের পরিবর্তন ট্র্যাক করতে সহায়ক। এই listeners ব্যবহার করে আপনি Hazelcast ডিস্ট্রিবিউটেড সিস্টেমে রিয়েল-টাইম ডেটা পরিবর্তন মনিটর করতে পারেন এবং দ্রুত প্রতিক্রিয়া জানাতে পারেন।
common.read_more