java - Hazelcast 终止用户 session

标签 java hazelcast

我正在考虑终止我的 hazelcast 集群的用户 Activity session 。

我们有 session 图,每个 session 似乎有两个条目

[SESSIONID] 映射到 boolean 值 和 [SESSIONID]::hz::user 映射到我们的用户对象

我认为杀死 session 的方式是我必须循环遍历映射并找到用户对象,一旦找到,删除该条目解析 key 并查找映射到 boolean 值的其他 sessionId 并杀死它。

我缺少更简单的方法吗?

最佳答案

Hazelcast Mastering 书中对此有很好的描述: http://hazelcast.org/mastering-hazelcast/ 您需要注册才能阅读该书。 您可以使用谓词:

  1. 标准 API
  2. 分布式 SQL 查询
  3. 用于在 map 中搜索 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);
}

关于java - Hazelcast 终止用户 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36582438/

相关文章:

tcp - Vertx Eventbus 发送节点间失败

java - 使用(最好是 Hazelcast)分布式同步原语来高效地同步 MySQL 表访问

java - 如果多个字符可以包含数字和下划线(最多 128 个),则正则表达式的第一个字符必须是字母

java - 如何在 Java 中修剪字符串

java - 如何避免将 BOM 字符写入文件?

java - 在java面试中写一个co relation

java - 如何应用循环从 Firebase 检索所需的数据?

java - Hazelcast 中的分区警告消息

java - 获取所有缓存名称

java - 让 Hazelcast 在使用 EntryProcessor 时停止反序列化对象