服务接受请求过多就崩溃 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
justthewayyouare
V2EX    程序员

服务接受请求过多就崩溃

  •  
  •   justthewayyouare 2023-10-24 08:26:17 +08:00 via iPhone 5145 次点击
    这是一个创建于 769 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我同一时间给服务器发送 1000 个 ajax 请求,服务器就崩了,得重启。 万一有人想搞我的网站,也同时发 1000 个 ajax 过来,那我网站不就崩了? 有没有办法让服务器接受大量请求不崩溃的办法?

    27 条回复    2023-10-24 15:27:21 +08:00
    zjsxwc
        1
    zjsxwc  
       2023-10-24 08:28:42 +08:00
    - jvm 的加大内存。
    - 改换用 php-fpm 重写。
    - 改用 serverless 重新。
    ltmst
        2
    ltmst  
       2023-10-24 08:29:52 +08:00   1
    lsk569937453
        3
    lsk569937453  
       2023-10-24 08:30:51 +08:00   4
    如果你的服务器并发超过 1000 的话,那就赚老鼻子钱了,招高级程序员给你打工吧。
    seers
        4
    seers  
       2023-10-24 08:35:39 +08:00 via iPhone
    上消息队列
    opengps
        5
    opengps  
       2023-10-24 08:37:28 +08:00
    1000 并发(并发一般是指 1 秒内的并发请求数量)是非常优秀的业务指标了。
    这个时候你需要的是多机器多站点的去做负载均衡做集群架构部署,而不是拼了命的提高单机性能。道理就好比你的 cpu 主频这么多年也就是个 GHz 了,于其提高单个性能不如再来一个 cpu 满足需要
    sdjl
        6
    sdjl  
       2023-10-24 08:51:52 +08:00
    那我网站不就崩了? 是的,就崩了。

    有没有办法让服务器接受大量请求不崩溃的办法? 对方要搞你,主要是搞钱(例如搞你的 CDN 流量费),不是搞崩。通常情况下,怕搞钱不怕搞崩。

    说回楼主的问题,如何提高并发能力。

    1 、静态资源都走 CDN 。
    2 、能缓存等请求尽量缓存,特别是重复的数据库查询。
    3 、开多进程守护,例如 8 个、80 个、200 个等等。
    4 、进程之间记得共享缓存数据,节约内存和时间。
    5 、好并发写攻击的防御(特别是涉及到金钱的程序)。
    6 、该崩就崩,人都是要死的,何况程序,别怕。
    sdjl
        7
    sdjl  
       2023-10-24 08:53:06 +08:00
    2 、能缓存请求就尽量缓存,特别是重复的数据库查询。
    blackeeper
        8
    blackeeper  
       2023-10-24 08:53:53 +08:00
    想让服务器不蹦?那么你可以选择换
    1 ,更好的 CPU 、
    2 ,更大的内存条
    3 ,速度更快的硬盘 SSD
    4 ,网口,以及超大带宽
    5 ,换操作系统
    6 ,.......
    还有一堆可以升级的地方,都是可以避免崩溃的地方,关键在于你业务服务器的瓶颈在哪儿
    sdjl
        9
    sdjl  
       2023-10-24 08:56:19 +08:00
    “服务器就崩了,得重启” 这里可能是因为你的进程有异常,没有 catch 住,然后进程死掉了。

    建议从最外围运行的地方 catch 异常,如发现未知异常就 catch 住,然后重启进程或线程,确保异常不会导致进程变“死进程”。
    dode
        10
    dode  
       2023-10-24 09:01:59 +08:00
    限制连接数量和请求速度
    sumarker
        11
    sumarker  
    PRO
       2023-10-24 09:03:44 +08:00
    加机器 做负载
    dif
        12
    dif  
       2023-10-24 09:13:48 +08:00
    个人网站,崩就崩了。别误伤账单就行。
    另外,合理利用缓存,尽量使用静态化解决。
    nuyan
        13
    nuyan  
       2023-10-24 09:20:49 +08:00
    想搞你,无非你能做的就是技术+金钱。最简单的就是花钱往死往死加机器。
    BinaryDH
        14
    BinaryDH  
       2023-10-24 09:41:40 +08:00
    真正的解决办法是,限流熔断
    newaccount
        15
    newaccount  
       2023-10-24 09:57:59 +08:00
    个人网站 1000 并发……
    公司网站 tomcat 做到 20 并发能不崩我就不继续测了,通过负载均衡拉到七八十应付爬虫就足够足够的
    realJamespond
        16
    realJamespond  
       2023-10-24 10:00:12 +08:00
    把带宽调低,物理限速
    rb6221
        17
    rb6221  
       2023-10-24 10:05:03 +08:00
    理论上是这样,可是同时发 1000 个请求也是要很高成本的,换句话说如果你的项目不是企业级项目,没有商业价值,那就不会有哪个黑客来花大价钱攻击你,因为他得不到什么东西。
    当然如果你只是单纯想提高一下安全性和性能的话,楼上很多做法都可以来一遍,各个环节能提升的地方都可以提升,就看你愿不愿意花钱了
    IDAEngine
        18
    IDAEngine  
       2023-10-24 10:06:03 +08:00
    开 API 网关,把高价值客户调度到高性能服务器,低价值客户调度到易受攻击的节点
    jioswu
        19
    jioswu  
       2023-10-24 10:15:10 +08:00
    换语言是成本最低的,前提是自己会,否则加机器上负载均衡
    pkoukk
        20
    pkoukk  
       2023-10-24 10:34:29 +08:00
    你这其实是两个问题
    1 、怎么防止被打
    2 、怎么提高服务性能
    方案太多了,一切以你的预算为前提
    asLw0P981N0M0TCC
        21
    asLw0P981N0M0TCC  
       2023-10-24 10:37:20 +08:00
    自己先主动崩
    freezebreze
        22
    freezebreze  
       2023-10-24 10:52:16 +08:00
    鸵鸟模式
    dashabi
        23
    dashabi  
       2023-10-24 12:29:49 +08:00
    并发 1000 ?我站每天有 8 万访问,在线人数 2000-3000.都没达到 并发 1000 、、厉害啊。
    是每个请求处理时间长???有 1000 并发,,弄个高档服务器。
    MeteorCat
        24
    MeteorCat  
       2023-10-24 12:45:22 +08:00 via Android
    买高防清洗掉攻击 IP
    alsas
        25
    alsas  
       2023-10-24 14:01:47 +08:00
    加机器
    kkkbbb
        26
    kkkbbb  
       2023-10-24 15:00:36 +08:00
    @dashabi 他是模拟
    ShuWei
        27
    ShuWei  
       2023-10-24 15:27:21 +08:00
    先在入口限流吧,然后再排查下为什么彻底宕了,估计是有 bug 修修
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5100 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION:3.9.8.5 24ms UTC 09:29 PVG 17:29 LAX 01:29 JFK 04:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86