EntryListener, ItemListener এবং MapListener ব্যবহার

Database Tutorials - হ্যাজেলকাস্ট  (Hazelcast) Hazelcast Events এবং Listeners |
292
292

Hazelcast-এ EntryListener, ItemListener, এবং MapListener হল ইভেন্ট-ভিত্তিক শ্রোতা (listener) যা ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারের পরিবর্তন বা ইভেন্টগুলি মনিটর করতে ব্যবহৃত হয়। এই লিসেনারগুলির মাধ্যমে আপনি ডেটা পরিবর্তন, যোগ বা মুছে ফেলার সময় দ্রুত প্রতিক্রিয়া জানাতে পারেন এবং একটি রিয়েল-টাইম ব্যবস্থায় সিস্টেমের অবস্থা ট্র্যাক করতে পারেন।

Hazelcast ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচার যেমন IMap, IQueue, ISet ইত্যাদির জন্য বিভিন্ন ধরণের ইভেন্ট শোনা যায়। আপনি যখন একটি ডেটা স্ট্রাকচারে কোনো পরিবর্তন করবেন, তখন এই listeners আপনাকে সেই পরিবর্তন সম্পর্কে অবহিত করবে।


1. EntryListener

EntryListener হল একটি ইন্টারফেস যা IMap (ডিস্ট্রিবিউটেড ম্যাপ) এর এন্ট্রি পরিবর্তন মনিটর করতে ব্যবহৃত হয়। এটি put, remove, update, evict ইত্যাদি অপারেশনগুলির সময় ইভেন্ট শোনার জন্য ব্যবহৃত হয়।

EntryListener উদাহরণ:

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 ইন্টারফেসে চারটি প্রধান ইভেন্ট মেথড রয়েছে:

  • entryAdded: একটি নতুন এন্ট্রি যোগ করা হলে কল হয়।
  • entryRemoved: একটি এন্ট্রি মুছে ফেলা হলে কল হয়।
  • entryUpdated: একটি এন্ট্রি আপডেট হলে কল হয়।
  • entryEvicted: একটি এন্ট্রি নিষ্ক্রিয় হলে কল হয় (যেমন ক্যাশে eviction ইভেন্ট)।

EntryListener যোগ করা:

IMap<String, String> map = hazelcastInstance.getMap("exampleMap");
map.addEntryListener(new MyEntryListener(), true);  // true for synchronous

2. ItemListener

ItemListener হল একটি ইন্টারফেস যা IQueue, ISet এবং IList এর মতো ডিস্ট্রিবিউটেড কালেকশন এর জন্য ব্যবহৃত হয়। এটি add, remove, clear ইত্যাদি অপারেশনের সময় ইভেন্ট শোনার জন্য ব্যবহৃত হয়।

ItemListener উদাহরণ:

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 ইন্টারফেসে দুটি প্রধান ইভেন্ট মেথড রয়েছে:

  • itemAdded: একটি নতুন আইটেম যোগ করা হলে কল হয়।
  • itemRemoved: একটি আইটেম মুছে ফেলা হলে কল হয়।

ItemListener যোগ করা:

IQueue<String> queue = hazelcastInstance.getQueue("exampleQueue");
queue.addItemListener(new MyItemListener(), true);  // true for synchronous

3. MapListener

MapListener হল একটি ইন্টারফেস যা IMap এর জন্য ব্যবহৃত হয় এবং এটি ম্যাপের পরিবর্তন, যেমন put, remove, clear ইত্যাদি ইভেন্ট মনিটর করে। যদিও EntryListener ইন্টারফেসটি বেশি ব্যবহৃত হয়, MapListener এছাড়াও ব্যবহার করা যেতে পারে যদি আপনি সম্পূর্ণ ম্যাপের পরিবর্তন শোনার প্রয়োজন অনুভব করেন।

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 ইন্টারফেসে দুটি প্রধান ইভেন্ট মেথড রয়েছে:

  • mapCleared: যখন পুরো ম্যাপ ক্লিয়ার করা হয়।
  • mapEvicted: ম্যাপের এন্ট্রিগুলিকে evict করা হয়।

MapListener যোগ করা:

IMap<String, String> map = hazelcastInstance.getMap("exampleMap");
map.addMapListener(new MyMapListener());

EntryListener, ItemListener, এবং MapListener এর মধ্যে পার্থক্য

বৈশিষ্ট্যEntryListenerItemListenerMapListener
ব্যবহারIMap এর এন্ট্রি পরিবর্তন মনিটর করতেIQueue, ISet, IList এর আইটেম পরিবর্তনIMap এর পুরো ম্যাপ পরিবর্তন
ইভেন্টEntryAdded, EntryRemoved, EntryUpdated, EntryEvictedItemAdded, ItemRemovedMapCleared, MapEvicted
অপারেশনডেটা স্ট্রাকচারের এন্ট্রি (key-value) এর উপর কাজ করেআইটেম যোগ বা মুছে ফেলার উপর কাজ করেপুরো ম্যাপ বা এর কোনো অংশের পরিবর্তন
সিনক্রোনাইজেশনসিঙ্ক্রোনাস বা অ্যাসিনক্রোনাসভাবে কাজ করা যায়সিঙ্ক্রোনাস বা অ্যাসিনক্রোনাসভাবে কাজ করা যায়সাধারণত অ্যাসিনক্রোনাস, তবে সিঙ্ক্রোনাসও হতে পারে

সারাংশ

EntryListener, ItemListener, এবং MapListener হল Hazelcast এর ইভেন্ট-ভিত্তিক শ্রোতা (listeners) যা ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারের উপর কার্যকরী পরিবর্তন বা ইভেন্টগুলি মনিটর করতে ব্যবহৃত হয়। EntryListener একক এন্ট্রি পরিবর্তন মনিটর করতে, ItemListener ডিস্ট্রিবিউটেড কালেকশনে আইটেম যোগ বা মুছে ফেলা, এবং MapListener পুরো ম্যাপের পরিবর্তন ট্র্যাক করতে সহায়ক। এই listeners ব্যবহার করে আপনি Hazelcast ডিস্ট্রিবিউটেড সিস্টেমে রিয়েল-টাইম ডেটা পরিবর্তন মনিটর করতে পারেন এবং দ্রুত প্রতিক্রিয়া জানাতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion