gpt4 book ai didi

python - 如何使用 Python 防止进出慢速 Cassandra 节点的流量

转载 作者:行者123 更新时间:2023-11-28 16:42:34 24 4
gpt4 key购买 nike

简介:

我有一个使用 Cassandra 1.2.4 集群的 Python 应用程序,复制因子为 3,所有读取和写入均以一致性级别 2 完成。要访问集群,我使用 CQL 库。 Cassandra 集群运行在 rackspace 的虚拟服务器上。

问题:

有时其中一个节点会变得比平时慢,在这种情况下,我希望能够检测到这种情况并防止向慢速节点发出请求,并且如果可能的话完全停止使用它(理论上这应该这是可能的,因为对于每个请求,RF 是 3,CL 是 2)。到目前为止,我提出的解决方案涉及对每个节点的请求进行计时,并防止将来连接到慢速节点。但这仍然不能解决所有问题,因为即使连接到另一个节点,特定查询也可能在协调器节点路由查询后最终由慢速节点提供服务。

问题:

从 Python 应用程序检测慢速节点的最佳方法是什么?有没有办法在这种情况下停止使用来自 Python 的 Cassandra 节点之一而无需人工干预?

提前致谢!

最佳答案

如果响应速度慢的节点也是处理查询速度慢的节点,那么您对请求计时的手动解决方案就足够了。

如果可以的话,Cassandra 会在内部使用动态告密器来避免慢速节点。这将根据最近的延迟统计信息对节点进行排序,如果一致性级别允许,将避免从最慢的节点读取数据。 NB 写入到所有可用节点,但如果您的一致性级别允许,您不必等待它们全部响应。

可能有一些客户端支持您在 python 客户端中想要的东西 - Java 中的 Astyanax 使用非常类似于客户端中的动态告密者的东西来避免向慢速节点发送请求。

关于python - 如何使用 Python 防止进出慢速 Cassandra 节点的流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com