如果我的Django服务器接收到的流量超出了我的承受能力,该怎么办



请按顺序告诉我当有更多用户时会发生什么。

如果服务器崩溃,如果流量再次下降,它会自动恢复吗?

环境:一个server,使用nginx-gunicorn。但没有使用自动愈合服务。(beanstalk, k8s, ...(
交通:我不知道。但我假设服务器可以覆盖10个访问者,有100个访问者

我不想覆盖太多用户。但我只想知道当访问者多于可用服务器时会发生什么。

如果服务器在站点上,并且您拥有它,并且您不介意对其进行爬网,那么只需自己测试即可。您可以使用"ApacheBenchmark"(通常在linux命令行中仅使用"ab"(来完成此操作。使用ab,您可以访问具有大量并发请求的服务器,并获得关于您的操作情况的报告。您可以发送GET、POST等。尝试使用逐渐更严格的测试场景,达到您认为资源更密集的端点之一。

你也可以同时在自己的浏览器中运行你的网站,亲眼看看当服务器负载过重时会是什么样子。

另一方面,如果您的站点运行在共享硬件上,您应该更加小心。如果你对共享主机进行严格的负载测试,他们肯定会认为你是一个攻击者。他们可能不高兴。但是,如果你小心不要太过火,ab仍然可以对你有用,因为它可以简单地一次模拟10、20或200个用户,并获得关于所有用户的一般体验的良好报告(例如,平均响应时间、失败的请求数量等(

TLDR:使用Apache Benchmark("ab"(来模拟大量负载。如果使用共享主机,不要做得太过火。

最后,如果你担心并想为你的情况增加一点硬件保护,那么考虑获得一个Cloudflare帐户,并将你的网站放在后面。它将为您进行缓存,还可以提供节流和其他负载控制功能。它对某些功能是免费的,对其他功能则是便宜的。

问题有点抽象,你能添加更多细节吗,比如

Django正在运行多个实例还是一个实例?如果是多个,是否有负载均衡器(类似ngnix(
  • 流量有多少
  • 你说的崩溃是什么意思?如果是"回溯"取决于在哪里以及如何处理,如果你的意思是后端处理需要花费大量时间解决方案是在不同的过程
  • 如果您的意图是对进入API的请求进行评级限制,则称为节流,您可以使用这里提到的各种方法来限制它们:https://www.django-rest-framework.org/api-guide/throttling/

    相关内容

    最新更新