绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
[Hazelcast系列 七] 分布式Set
2022-04-18 15:11:02

Hazelcast中的ISetjava.util.Set 的分布式和并发实现。ISet 拥有以下特性:

  • 不允许重复元素。
  • 不保证元素顺序。
  • 不是分区数据结构。
  • 扩容不能超过单节点容量限制。
  • 备份数据存储在另外节点的一个分区中。
  • 所有数据被拷贝到本地,本地数据遍历。
  • 使用对象序列化的字节版本实现相等比较。

1. 基本操作

获取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 来监听元素的添加的和移除。

2. 配置Set

下面是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: 脑裂保护配置。

3. 脑裂保护

ISet &TransactionalSet支持配置在应用操作前检查集群节点小值,以包装在网络分区发生时,操作不会在所有集群都操作成功。

下面是支持脑裂保护配置的方法:

ISet:

  • WRITE, READ_WRITE:
    • add
    • addAll
    • clear
    • remove
    • removeAll
  • READ, READ_WRITE:
    • contains
    • containsAll
    • isEmpty
    • iterator
    • size
    • toArray

TransactionalSet:

  • WRITE, READ_WRITE:
    • add
    • remove
  • READ, READ_WRITE:
    • size

脑裂保护配置

下面是一个简单的配置:

<hazelcast>
    ...
    <set name="default">
        <split-brain-protection-ref>splitbrainprotection-name</split-brain-protection-ref>
    </set>
    ...
</hazelcast>


作者:大哥你先走
链接:https://www.jianshu.com/p/f1019d895476
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
分享好友

分享这个小栈给你的朋友们,一起进步吧。

Hazelcast
创建时间:2022-04-18 14:01:59
Hazelcast
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 飘絮絮絮丶
    专家
戳我,来吐槽~