gpt4 book ai didi

python - 如何避免使网络服务器成为 cassandra 的瓶颈?

转载 作者:行者123 更新时间:2023-11-30 23:50:32 26 4
gpt4 key购买 nike

我是 Cassandra 新手,所以请耐心等待。

所以,我正在使用 Cassandra 作为数据库构建一个搜索引擎。我通过 Pycassa 与它交互。

现在,我想输出 Cassandra 对网页的响应,让用户提交查询。

我知道 django、fastCGI、SCGI 等工具可以允许 python 与 Web 交互。然而,如何在网络服务器上运行 python 脚本而不将该服务器变成单点故障(即,如果该服务器死机,则用户无法访问系统),从而否定 Cassandra 的一个目的?

最佳答案

我以前见过这个问题 - 有时人们需要更多的 CPU 能力和带宽来生成和服务一些服务器生成的 HTML 和图像,而不是在 Cassandra 中运行实际查询。对于一位客户来说,为网站前端提供服务的服务器数量是其 Cassandra 集群中的服务器数量的十倍之多。

您需要以某种方式在这些前端服务器之间实现负载平衡 - 研究在一些专用计算机上运行 haproxy。它的配置快速且简单,并且在您的设置发生更改时也同样可以轻松地重新配置(与 DNS 不同,DNS 可能需要几天的时间才能传播更改)。我想你也可以配置 nginx 来做同样的事情。如果您将每个 session 的信息保留在前端服务器中,则需要每个客户端针对每个请求都转到同一前端服务器 - 这称为“ session 持久性”,可以通过对客户端的 IP 进行散列来选择来实现前端服务器。 Haproxy 会为你做这件事。

然而,这种方法将再次在您的配置(haproxy 服务器)中创建 SPOF - 您应该运行多个,并且可能有一个热备用。最后,您需要以某种方式平衡 haproxy 之间的负载 - 我们通常为此使用循环 DNS,因为运行 haproxy 的节点很少发生变化。

该系统的好处是您可以轻松地增加(和减少)前端服务器的数量,而无需更改 DNS。您可以阅读(一点点)有关我所指的设置的更多信息:http://www.acunu.com/blogs/andy-ormsby/using-cassandra-acunu-power-britains-got-talent/

关于python - 如何避免使网络服务器成为 cassandra 的瓶颈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7140661/

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