首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >卡桑德拉:集群是如何处理死节点的?

卡桑德拉:集群是如何处理死节点的?
EN

Stack Overflow用户
提问于 2012-02-13 14:06:45
回答 1查看 1.4K关注 0票数 3

我对卡桑德拉非常陌生,我不确定我是否正确地理解了一切,所以我希望有人能帮助我。

这是我的系统:

具有3节点ANY复制策略的密钥空间: NetworkTopologyStrategy (同一DC中的所有节点)H 111rails金属应用程序,该应用程序使用twitter 1F 112H 113读取一致性:1<代码>H 214/代码>H 115/code>写入一致性:

  • cassandra gem 1F 112H 113读一致性:1H 214/code>H 115/code>写入一致性:

当一个节点发生故障时,我很确定:

如果使用读一致性级别为1的话,

  • i应该能够从键空间读取记录。
  • 我应该能够用任何

的写一致性级别写入密钥空间。

,这就是我不明白的:

上面的操作是成功的,但是只有当我手动删除死node

  • shouldn't的令牌时,我的集群才能像预期的那样处理死节点吗?这不是卡桑德拉的全部意思吗:高availability?

我仔细研究了gem的代码,如果cassandra集群告诉宝石它可以在死节点上找到一个记录(实际上已经关闭了)。因此,创业板失败时会出现异常,即它无法连接到死节点。

所以我不确定我是否完全误解了一些东西,我的cassandra设置是错误的,或者是否卡桑德拉红宝石是问题所在(我不认为)。

西门

1

EN

回答 1

Stack Overflow用户

发布于 2012-02-14 04:43:10

是的,您的集群应该按照您对死节点的描述工作。

我不熟悉ruby或ruby客户端,但在我看来,更有可能的是,您的客户端试图向死节点发送请求,这会导致“无法连接”类型的异常。如果没有足够的节点来满足某个查询的一致性要求,Cassandra就会抛出一个UnavailableException。

ruby客户端做什么类型的池,并且您确定它没有试图将查询发送到已关闭的节点?假设ruby客户端有某种类型的连接池,那么它可能必须至少看到一个失败的查询才能实现节点故障。

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

https://stackoverflow.com/questions/9261901

复制
相关文章

相似问题

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