服务接受请求过多就崩溃
我同一时间给服务器发送 1000 个 ajax 请求,服务器就崩了,得重启。
万一有人想搞我的网站,也同时发 1000 个 ajax 过来,那我网站不就崩了?
有没有办法让服务器接受大量请求不崩溃的办法?
jvm 的加大内存。- 改换用 php-fpm 重写。- 改用 serverless 重新。
learn.microsoft.com/zh-cn/aspnet/core/performance/rate-limit?view=aspnetcore-7.0语言不重要,看方式
如果你的服务器并发超过 1000 的话,那就赚老鼻子钱了,招高级程序员给你打工吧。
上消息队列
1000 并发(并发一般是指 1 秒内的并发请求数量)是非常优秀的业务指标了。这个时候你需要的是多机器多站点的去做负载均衡做集群架构部署,而不是拼了命的提高单机性能。道理就好比你的 cpu 主频这么多年也就是个 GHz 了,于其提高单个性能不如再来一个 cpu 满足需要
那我网站不就崩了? 是的,就崩了。有没有办法让服务器接受大量请求不崩溃的办法? 对方要搞你,主要是搞钱(例如搞你的 CDN 流量费),不是搞崩。通常情况下,怕搞钱不怕搞崩。说回楼主的问题,如何提高并发能力。1 、静态资源都走 CDN 。2 、能缓存等请求尽量缓存,特别是重复的数据库查询。3 、开多进程守护,例如 8 个、80 个、200 个等等。4 、进程之间记得共享缓存数据,节约内存和时间。5 、做好并发写攻击的防御(特别是涉及到金钱的程序)。6 、该崩就崩,人都是要死的,何况程序,别怕。
2 、能缓存请求就尽量缓存,特别是重复的数据库查询。
想让服务器不蹦?那么你可以选择换1 ,更好的 CPU 、2 ,更大的内存条3 ,速度更快的硬盘 SSD4 ,网口,以及超大带宽5 ,换操作系统6 ,.......还有一堆可以升级的地方,都是可以避免崩溃的地方,关键在于你业务服务器的瓶颈在哪儿
“服务器就崩了,得重启” 这里可能是因为你的进程有异常,没有 catch 住,然后进程死掉了。建议从最外围运行的地方 catch 异常,如发现未知异常就 catch 住,然后重启进程或线程,确保异常不会导致进程变“死进程”。
限制连接数量和请求速度
加机器 做负载
个人网站,崩就崩了。别误伤账单就行。另外,合理利用缓存,尽量使用静态化解决。
想搞你,无非你能做的就是技术+金钱。最简单的就是花钱往死往死加机器。
真正的解决办法是,限流熔断
个人网站 1000 并发……公司网站 tomcat 做到 20 并发能不崩我就不继续测了,通过负载均衡拉到七八十应付爬虫就足够足够的
把带宽调低,物理限速
理论上是这样,可是同时发 1000 个请求也是要很高成本的,换句话说如果你的项目不是企业级项目,没有商业价值,那就不会有哪个黑客来花大价钱攻击你,因为他得不到什么东西。当然如果你只是单纯想提高一下安全性和性能的话,楼上很多做法都可以来一遍,各个环节能提升的地方都可以提升,就看你愿不愿意花钱了
开 API 网关,把高价值客户调度到高性能服务器,低价值客户调度到易受攻击的节点
换语言是成本最低的,前提是自己会,否则加机器上负载均衡
你这其实是两个问题1 、怎么防止被打2 、怎么提高服务性能方案太多了,一切以你的预算为前提
自己先主动崩
鸵鸟模式
并发 1000 ?我站每天有 8 万访问,在线人数 2000-3000.都没达到 并发 1000 、、厉害啊。是每个请求处理时间长???有 1000 并发,,弄个高档服务器。
买高防清洗掉攻击 IP
加机器
他是模拟
先在入口限流吧,然后再排查下为什么彻底宕了,估计是有 bug 修修
以前用小米的时候内置 114dns ,后来被喷改了后就没内置了,现在换一加又发现系统内置 114dns 症状为,如果 dhcp 只有一个 dns ,那么系统会自动添加一个 1…
C2C不是电了商务里的C2C,而是Copy to China的缩写,以前,我们以Made in China著称,现在我们会以C2C著称。toxicat制作了下面这个图片(源图…
本身是后端技术 想学习下前端,自己做点 UI 啥的,后端技术在怎么实现,没有能看到的东西,不能形成反馈,良性循环。 我没弄过前端,还停留在 Jquery 那个年代, React…
合速度