介绍:
我有一个 Python 应用程序使用 Cassandra 1.2.4 集群,复制因子为 3,所有读取和写入都以一致性级别 2 完成。要访问集群,我使用 CQL 库。Cassandra 集群在 rackspace 的虚拟服务器上运行。
问题:
有时其中一个节点可能会变得比平时慢,在这种情况下,我希望能够检测到这种情况并防止向慢速节点发出请求,并且如果可能的话完全停止使用它(这在理论上应该是可能的,因为对于每个请求,RF 为 3,CL 为 2)。到目前为止,我提出的解决方案包括对每个节点的请求进行计时,并防止将来连接到慢速节点。但这仍然不能解决所有问题,因为在协调节点路由查询之后,即使连接到另一个节点,特定查询也可能最终由慢速节点提供服务。
问题:
从 Python 应用程序中检测慢速节点的最佳方法是什么?在这种情况下,有没有办法在没有人工干预的情况下停止使用 Python 中的 Cassandra 节点之一?
提前致谢!