【问题标题】:Cassandra client lose the connection to seed node, if the seed node crashes. Is it normal behavior?如果种子节点崩溃,Cassandra 客户端将失去与种子节点的连接。这是正常行为吗?
【发布时间】:2014-08-03 06:11:30
【问题描述】:

我目前正在使用 Cassandra 2.0.9 进行可行性测试。在测试过程中,观察到当种子节点崩溃时,连接到具有种子节点 IP 地址的集群的客户端会失去连接。

详细来说,集群有两个节点,IP 为 1.1.1.1 和 2.2.2.2,以 1.1.1.1 作为种子。

(1) 客户端 A 与 1.1.1.1 连接。 (2)种子节点1.1.1.1崩溃 (3)客户端A失去连接 (4) 即使种子节点重启后也不会恢复。

客户端在以下情况下一直正常工作,没有问题。 +client 连接 2.2.2.2 并且任何节点崩溃。

我不应该使用种子节点 IP 进行客户端配置吗?

如果有许多客户端和多个 Cassandra 节点,应如何为 cassandra 集群配置客户端 IP。

我对性能很满意,但 Cassandra 似乎有些松懈。

提前致谢。

【问题讨论】:

    标签: cassandra-2.0


    【解决方案1】:

    种子节点在 Cassandra 中没有什么特别之处——种子节点和普通节点之间的唯一区别是集群中的每个节点都应该在引导阶段知道种子 IP。所以集群的第一条规则永远不会只将一个节点设置为种子,因为如果它无法访问并且其他一些节点尝试加入集群,他们将无法加入(我知道你只是一个例子,但这是一个很好的规则记住)。回答第一个问题:您可以为 ip 客户端配置设置种子节点。

    就您的测试而言,您没有指定您正在使用的客户端 - 假设您使用的是官方 Java 驱动程序,您应该告诉驱动程序如何您希望他在节点死亡以及如果由于TimeoutException | UnavailableException而导致读取失败该怎么办

    看看ReconnectionPolicyRetryPolicy,可能默认值不能满足你的需求。

    HTH,卡罗

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      相关资源
      最近更新 更多