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

问题描述 投票:0回答:2

[请让我知道顺序,当有更多用户时会发生什么。

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

Env:一台服务器,请使用nginx-gunicorn。但不使用自动修复服务。(beanstalk,k8s等)交通:我不知道。但是我认为服务器可以覆盖10位访客,并且有100位访客

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

django server traffic
2个回答
0
投票

问题有点抽象,您能添加更多详细信息吗,

  • Django正在运行多个实例还是一个?如果是多个,是否有负载均衡器(喜欢ngnix)?
  • 多少流量?
  • 崩溃是什么意思?如果是然后,“追溯”取决于在哪里以及如何处理后端要花很多时间来处理解决方案不同的过程。

如果您打算rate-limit到API的请求,则称为限制,您可以使用此处提到的各种方法来限制它们:https://www.django-rest-framework.org/api-guide/throttling/


0
投票

如果服务器在站点上并且您拥有它,并且不介意对其进行爬网,则只需对其进行测试。您可以使用“ Apache Benchmark”(通常在Linux命令行上仅使用“ ab”)执行此操作。使用ab,您可以在具有大量并发请求的服务器上运行,并获得有关您的工作情况的报告。您可以发送GET,POST等。尝试逐渐使用更严格的测试方案,尝试击中一个您认为是资源消耗更大的端点之一。

您还可以同时在自己的浏览器中运行您的网站,并亲自查看服务器负载很重时的情况。

另一方面,如果您的站点在共享硬件上运行,则应多加注意。如果您对共享主机进行严格的负载测试,那么他们肯定会成为攻击者。他们可能不开心。但是,如果您小心翼翼,不要过分忙碌,那么ab仍然可以使您一次轻松模拟10个,20个或200个用户,并获得有关所有用户一般经验的报告(例如,平均响应)时间,请求失败的数量等)

TLDR:使用Apache Benchmark(“ ab”)来模拟大量负载。如果使用共享托管,请不要过度使用它。

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

© www.soinside.com 2019 - 2024. All rights reserved.