我们计划使用 apache shiro 和 cassandra 进行分布式会话管理,非常类似于提到的 @ https://github.com/lhazlewood/shiro-cassandra-sample
需要有关在 Amazon EC2 中部署 cassandra 的建议:
在 EC2 中,我们有以下设置:单个区域、2 个可用区(AZ)、4 个节点
因此,cassandra 配置为:
单个 DataCenter:DC1 两个机架:Rack1、Rack2 4 个节点:Rack1_Node1、Rack1_Node2、Rack2_Node1、Rack2_Node2
使用的数据复制策略是NetworkTopologyStrategy
由于 Cassandra 用作会话数据存储,因此我们需要高一致性和可用性。
我的问题:
- 我应该在一个集群中保留多少个副本?考虑 2 个副本,每个机架 1 个。
- 读写操作的一致性级别(CL)应该是多少?考虑到集群中的 2 个副本,考虑读取和写入的 QUORUM。
- 如果 1 个机架出现故障,Cassandra 是否会通过上述配置成功读写?我知道它可以对临时关闭节点使用hinted-hands-off,但它对读/写操作都有效吗?
- 对我的要求还有其他建议吗?