
- Hazelcast 教程
- Hazelcast - 主頁
- Hazelcast - 簡介
- Hazelcast - 安裝
- Hazelcast - 第一個應用
- Hazelcast - 配置
- 設定多節點例項
- Hazelcast - 資料結構
- Hazelcast - 客戶端
- Hazelcast - 序列化
- Hazelcast - 高階版
- Hazelcast - 彈性整合
- Hazelcast - 監控
- Map Reduce 和聚合
- Hazelcast - 集合偵聽器
- 常見陷阱和效能提示
- Hazelcast 實用資源
- Hazelcast - 快速指南
- Hazelcast - 實用資源
- Hazelcast - 討論
Hazelcast - 集合偵聽器
當給定的集合(例如,佇列、集、列表等)更新時,Hazelcast 支援偵聽器。
典型的事件包括新增條目和移除條目。
透過一個示例看看如何實現集偵聽器。所以,假設我們想實現一個偵聽器,可以跟蹤集合中的元素數。
示例
public class SetTimedProducer{ public static void main(String... args) throws IOException, InterruptedException { //initialize hazelcast instance HazelcastInstance hazelcast = Hazelcast.newHazelcastInstance(); Thread.sleep(5000); // create a set ISet<String> hzFruits = hazelcast.getSet("fruits"); hzFruits.add("Mango"); Thread.sleep(2000); hzFruits.add("Apple"); Thread.sleep(2000); hzFruits.add("Banana"); System.exit(0); } }
所以,讓我們首先實現生成器 −
package com.example.demo; import java.io.IOException; import com.hazelcast.core.ISet; import com.hazelcast.core.ItemEvent; import com.hazelcast.core.ItemListener; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; public class SetListener{ public static void main(String... args) throws IOException, InterruptedException { //initialize hazelcast instance HazelcastInstance hazelcast = Hazelcast.newHazelcastInstance(); // create a set ISet<String> hzFruits = hazelcast.getSet("fruits"); ItemListener<String> listener = new FruitListener<String>(); hzFruits.addItemListener(listener, true); System.exit(0); } private static class FruitListener<String> implements ItemListener<String> { private int count = 0; @Override public void itemAdded(ItemEvent<String> item) { System.out.println("item added" + item); count ++; System.out.println("Total elements" + count); } @Override public void itemRemoved(ItemEvent<String> item) { count --; } } }
現在,讓我們實現偵聽器 −
java -cp .\target\demo-0.0.1-SNAPSHOT.jar com.example.demo.SetTimedProducer
我們首先執行生成器 −
java -cp .\target\demo-0.0.1-SNAPSHOT.jar com.example.demo.SetListener
然後,我們執行偵聽器並使其一直執行 −
輸出
item added: ItemEvent{ event=ADDED, item=Mango, member=Member [localhost]:5701-c28a60b7-3259-44bf-8793-54063d244394 this} Total elements: 1 item added: ItemEvent{ event=ADDED, item=Apple, member=Member [localhost]:5701-c28a60b7-3259-44bf-8793-54063d244394 this} Total elements: 2 item added: ItemEvent{ event=ADDED, item=Banana, member=Member [localhost]:5701-c28a60b7-3259-44bf-8793-54063d244394 this} Total elements: 3
偵聽器的輸出如下 −
列印頁面