我对cassandra很新,我不确定我是否理解正确,所以我希望有人可以帮助我。
这是我的系统:
当一个节点出现故障时,我很清楚这一点:
这是我不明白的地方:
我在gem的代码中挖掘,看起来如果cassandra集群告诉gem它可以在死节点上找到记录(实际上已经关闭)。因此gem失败并出现异常,它无法连接到死节点。
所以我不确定我是否完全误解了一些东西,我的cassandra设置是错误的,或者如果cassandra ruby gem是问题(我不认为)。
thx,simon
答案 0 :(得分:0)
是的,您的群集应该像您描述的死节点一样工作。
我不熟悉ruby或ruby客户端但是我觉得你的客户端更有可能尝试向死节点发送请求,这会导致“无法连接”类型的异常。如果没有足够的节点满足某个查询的一致性要求,Cassandra会抛出一个UnavailableException。
ruby客户端执行什么类型的池,您确定它没有尝试向已关闭的节点发送查询吗?假设ruby客户端具有某种连接池,它可能必须在实现节点关闭之前至少看到一个失败的查询。