首页 > 数据库 > > [Hazelcast系列 七] 分布式Set
Hazelcast中的ISet 是java.util.Set 的分布式和并发实现。ISet 拥有以下特性:
获取ISet 并存储数据:
HazelcastInstance instance = Hazelcast.newHazelcastInstance();
ISet<Integer> set = instance.getSet("data");
set.add(1);
set.add(2);
set.add(3);
set.add(1);
System.out.println("set size is " + set.size());
上述代码的输出为:
set size is 3
ISet 可以通过ItemListener 来监听元素的添加的和移除。
下面是ISet 的一个简单配置。
声明式配置:
<hazelcast>
...
<set name="default">
<backup-count>1</backup-count>
<async-backup-count>0</async-backup-count>
<max-size>10</max-size>
<item-listeners>
<item-listener>com.hazelcast.examples.ItemListener</item-listener>
</item-listeners>
<split-brain-protection-ref>splitbrainprotection-name</split-brain-protection-ref>
</set>
...
</hazelcast>
代码配置:
Config config = new Config();
CollectionConfig collectionSet = config.getSetConfig("MySet");
collectionSet.setBackupCount(1)
.setMaxSize(10)
.setSplitBrainProtectionName("splitbrainprotectionname");
ISet 支持的配置参数及意义如下:
statistics-enabled: 是否开启Set统计信息,默认true。backup-count: 同步备份数。async-backup-count: 异步备份数。max-size: Set存储的最大数据量。item-listeners: 监听元素添加和移除的监听器。split-brain-protection-ref: 脑裂保护配置。ISet &TransactionalSet支持配置在应用操作前检查集群节点最小值,以包装在网络分区发生时,操作不会在所有集群都操作成功。
下面是支持脑裂保护配置的方法:
ISet:
addaddAllclearremoveremoveAllcontainscontainsAllisEmptyiteratorsizetoArrayTransactionalSet:
addremovesize脑裂保护配置
下面是一个简单的配置:
<hazelcast>
...
<set name="default">
<split-brain-protection-ref>splitbrainprotection-name</split-brain-protection-ref>
</set>
...
</hazelcast>来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3129749/ ,如需转载,请注明出处,否则将追究法律责任。