首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >修改HazelcastHttpSession实例时是否需要锁定它的属性?

修改HazelcastHttpSession实例时是否需要锁定它的属性?
EN

Stack Overflow用户
提问于 2014-04-11 13:26:24
回答 1查看 184关注 0票数 0

我计划使用Hazelcast进行Http会话集群。我读过这个文档-- http://hazelcast.org/docs/latest/manual/html/httpsessionclustering.html,我知道我需要设置com.hazelcast.web.WebFilter过滤器,这个过滤器将装饰原始的HttpSession,以便在Hazelcast缓存中存储会话数据。

我的问题是,当我修改HazelcastHttpSession实例的属性时,是否必须对它设置一个锁(分布式锁),就像对原始HttpSession实例那样。

如果我必须锁定HazelcastHttpSession实例,我计划使用Hazelcast分布式锁,获得分布式锁的关键是会话id。请查看我的示例代码:

代码语言:javascript
运行
复制
HazelcastInstance hz = Hazelcast.newHazelcastInstance(cfg);
Lock session_lock = hz.getLock( SessionID );

session_lock .lock();
try {
    // Modify session data
} finally {
    session_lock .unlock();
}

我的应用程序可能一次激活10K用户,因此应用程序可能需要从Hazelcast一次获得10K分布式锁实例。

我的问题是,黑泽尔可以一次创建太多的( 10K )分布式锁吗?文档http://hazelcast.org/docs/latest/manual/html/lock.html没有提到任何内容。

谢谢你的评论。

EN

回答 1

Stack Overflow用户

发布于 2014-04-11 14:22:19

你不需要锁定物体。黑兹尔广播数据结构是线程安全的设计。但是,您可以设置延迟写入属性,以便在请求完成后写入所有值。如果在处理请求时抛出异常,则不会写入它们。如果不设置延迟写入,则所有值都立即存储在分布式会话中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23013944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档