Hazelcast Client配置

最大value

  • 单个k-v的操作本身不受数据字节大小限制
  • 操作受最大堆内存-Xmx限制
  • 操作受超时时间限制hazelcast.max.operation.timeout

    1
    2
    INFO HazelcastTest - size:273437KB
    INFO HazelcastTest - elapsed:62ms

数量、过期等限制

  • 针对每个map均可限制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //限制instruments特定map
    MapConfig mCfg = new MapConfig("instruments");
    //超时时间
    mCfg.setTimeToLiveSeconds(60);
    //节点备份数
    mCfg.setBackupCount(1);
    //删除策略
    mCfg.setEvictionPolicy(EvictionPolicy.LRU);
    //存储模式
    mCfg.setInMemoryFormat(InMemoryFormat.BINARY);

    MaxSizeConfig maxSizeConfig = new MaxSizeConfig();
    //最大数量
    maxSizeConfig.setSize(1000);
    //针对节点限制
    maxSizeConfig.setMaxSizePolicy(MaxSizeConfig.MaxSizePolicy.PER_NODE);
    mCfg.setMaxSizeConfig(maxSizeConfig);

Map过期时间

1
2
3
4
5
6
//ttl
myMap.put( "1", "John", 50, TimeUnit.SECONDS )
//ttl
myMap.setTTL( "1", 50, TimeUnit.SECONDS )
//ttl 50,maxIdle 40
myMap.put( "1", "John", 50, TimeUnit.SECONDS, 40, TimeUnit.SECONDS )

time-to-live-seconds:存活时间,期间没有写请求,则到期删除;默认0,无过期
max-idle-seconds:最大空闲时间,期间没有读和写请求,则到期删除

删除策略

当map大小超过max-size时,启用eviction-policy。

  • NONE,忽略max-size
  • LRU,最近最久未使用
  • LFU,最近最少使用

集群性能

  • -Xms128M -Xmx256M
  • 2个节点
  • k:递增,value:1k
  • client并发50
  • 双节点puts平均为290/s,延迟为0.5ms

    自动扩充

  • 基于广播
  • 基于TCP-IP
  • 基于Eureka
  • 基于Zk

检索

1
2
3
4
5
6
7
8
9
10
11
Cache cache1 = new Cache();
topiccache1Cache1.setA("1");
cache1.setB("你好");
cache1.setC("大家好");
Gson gson = new Gson();
Client.getInstance().putKV(cache1.getA(),
Predicate p1 = Predicates.like("b", "%好%");
Predicate p2 = Predicates.like("c", "%大%");
Predicate predicate = Predicates.or(p1, p2);
Collection<HazelcastJsonValue> peopleUnder21 = Client.getInstance().values(predicate);
log.info(peopleUnder21.toString());
------ 本文结束------

本文标题:Hazelcast Client配置

文章作者:Perkins

发布时间:2019年09月12日

原始链接:https://perkins4j2.github.io/posts/354/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。