- 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
侦听器的输出如下 −
打印页面