我目前正在使用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似乎有些松散的结局。
提前致谢。
答案 0 :(得分:0)
种子节点在Cassandra中并不特别 - 种子和普通节点之间的唯一区别是群集中的每个节点都应该知道引导阶段中的种子IP。所以群集的第一个规则永远不会只将一个节点设置为种子,因为如果它不可达,而其他一些节点试图加入群集,他们将无法(我知道你只是一个例子,但它是一个好的规则要记住)。回答第一个问题:您可以为ip客户端配置设置种子节点。
就您的测试而言,您没有指定您正在使用的客户端 - 假设您使用的是官方Java驱动程序,您应该告诉驱动程序如何您希望他在尝试新连接时节点死亡以及如果由于TimeoutException | UnavailableException
查看ReconnectionPolicy和RetryPolicy,可能默认值无法满足您的需求。
HTH,Carlo