【发布时间】:2018-01-29 01:14:16
【问题描述】:
我想为我的 Web 应用程序实现会话存储。这是我的应用程序的配置文件。
- 与会话相关的信息变化不大,但 它有时会改变。
- 会话读取 (session.getAttribute()) 比写入 (session.setAttribute()) 更频繁。
- 我不想处理基于主节点的架构(如 redis)。
- 与会话相关的数据很少,但会话的数量可能很大。
- 查找始终采用键值的形式,如哈希映射。
- 我对最终的一致性感到满意。
- 我希望能够指定复制因子。即为给定会话保存数据的节点数
- 我只是在寻找不会产生上述功能许可费用的开源解决方案。
- 目前我希望存储多达 10,000 个会话,每个会话(平均)具有 10kb 数据,但最终我希望扩展到 100,000 个会话或更多!
在我的应用程序中,hazelcast 已被用于其他一些功能。但我不希望这成为决定因素。 Cassandra 似乎满足了我的所有要求,而且似乎很受欢迎。有什么理由我应该选择 hazelcast 而不是 cassandra?
【问题讨论】:
-
注意第 1 点和第 2 点。会话的写入量很大。每次处理 Web 请求时,必须更新会话的上次访问时间,无论您访问会话属性是为了读取还是写入。
-
@NeilStevenson 感谢您指出上次访问时间。我差点错过了那部分。
标签: cassandra scalability hazelcast nosql