Cassandra:集群如何处理死节点?
我对卡桑德拉很陌生,我不确定自己是否理解正确,所以我希望有人能帮助我 这是我的系统:Cassandra:集群如何处理死节点?,cassandra,Cassandra,我对卡桑德拉很陌生,我不确定自己是否理解正确,所以我希望有人能帮助我 这是我的系统: 卡桑德拉0.8 具有3个节点的集群 复制因子为3的键空间 复制策略:NetworkTopologyStrategy(同一DC中的所有节点) 使用twitter cassandra gem连接到集群的rails金属应用程序[1] 阅读一致性:一 书写一致性:任何 当一个节点发生故障时,我可以肯定: 如果使用读取一致性级别1,我应该能够从键空间读取记录 我应该能够以任意的写入一致性级别写入密钥空间 这是
- 卡桑德拉0.8
- 具有3个节点的集群
- 复制因子为3的键空间
- 复制策略:NetworkTopologyStrategy(同一DC中的所有节点)
- 使用twitter cassandra gem连接到集群的rails金属应用程序[1]
- 阅读一致性:一
- 书写一致性:任何
- 如果使用读取一致性级别1,我应该能够从键空间读取记录
- 我应该能够以任意的写入一致性级别写入密钥空间
- 上述操作成功,但前提是我手动删除死节点的令牌
- 对于死区节点,我的集群不应该像预期的那样工作吗?这不是cassandra的全部内容吗:高可用性
[1] 是的,您的集群应该按照您描述的使用死区节点的方式工作 我不熟悉ruby或ruby客户机,但我觉得您的客户机更可能试图向死节点发送请求,这将导致“无法连接”类型的异常。如果没有足够的节点满足某个查询的一致性要求,Cassandra将抛出一个不可用的异常 ruby客户端执行什么类型的池,并且您确定它没有尝试向关闭的节点发送查询吗?假设ruby客户机有某种连接池,那么在它意识到某个节点已关闭之前,它可能必须至少看到一个失败的查询