繁体   English   中英

Hazelcast杀死用户会话

[英]Hazelcast killing a user session

我正在考虑终止我的hazelcast群集的用户活动会话。

我们有会话映射,每个会话似乎有两个条目

[SESSIONID]映射到一个布尔值,[SESSIONID] :: hz :: user映射到我们的用户对象

我看到它杀死会话的方式必须遍历地图并找到用户对象,一旦找到该对象,则删除该条目以解析键并查找映射到布尔值的另一个sessionId并杀死它。

有没有更简单的方法让我丢失?

Hazelcast Mastering手册对此进行了很好的描述: http ://hazelcast.org/mastering-hazelcast/您需要注册才能阅读该书。 您可以将Predicate用于:

  1. 标准API
  2. 分布式SQL查询
  3. RegexPredicate在地图中搜索sessionid

假设我们有一个Hazelcast IMap,其中的键是一些ID,值是一个Person对象,并且我们想使用以下(和幼稚的)实现来检索具有给定名称的所有人员:

public Set<Person> getWithNameNaive(String name){
    Set<Person> result = new HashSet<Person>();
    for(Person person: personMap.values()){
        if(person.name.equals(name)){
            result.add(person);
        }
    }
    return result;

Hazelcast解决该问题的方法:

 public Set<Person> getWithName(String name) {
    Predicate namePredicate = equal("name", name);
    return (Set<Person>) personMap.values(namePredicate);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM