• 请不要在回答技术问题时复制粘贴 AI 生成的内容
justthewayyouare
V2EX  ›  程序员

服务接受请求过多就崩溃

  •  
  •   justthewayyouare · Oct 24, 2023 via iPhone · 6187 views
    This topic created in 1113 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    建议从最外围运行的地方 catch 异常,如发现未知异常就 catch 住,然后重启进程或线程,确保异常不会导致进程变“死进程”。
    dode
    dode
    Oct 24, 2023
    10
    限制连接数量和请求速度
    sumarker
    sumarker
    Oct 24, 2023
    11
    加机器 做负载
    dif
    dif
    Oct 24, 2023
    12
    个人网站,崩就崩了。别误伤账单就行。
    另外,合理利用缓存,尽量使用静态化解决。
    nuyan
    nuyan
    Oct 24, 2023
    13
    想搞你,无非你能做的就是技术+金钱。最简单的就是花钱往死往死加机器。
    BinaryDH
    BinaryDH
    Oct 24, 2023
    14
    真正的解决办法是,限流熔断
    newaccount
    newaccount
    Oct 24, 2023
    15
    个人网站 1000 并发……
    公司网站 tomcat 做到 20 并发能不崩我就不继续测了,通过负载均衡拉到七八十应付爬虫就足够足够的
    realJamespond
    realJamespond
    Oct 24, 2023
    16
    把带宽调低,物理限速
    rb6221
    rb6221
    Oct 24, 2023
    17
    理论上是这样,可是同时发 1000 个请求也是要很高成本的,换句话说如果你的项目不是企业级项目,没有商业价值,那就不会有哪个黑客来花大价钱攻击你,因为他得不到什么东西。
    当然如果你只是单纯想提高一下安全性和性能的话,楼上很多做法都可以来一遍,各个环节能提升的地方都可以提升,就看你愿不愿意花钱了
    IDAEngine
    IDAEngine
    Oct 24, 2023
    18
    开 API 网关,把高价值客户调度到高性能服务器,低价值客户调度到易受攻击的节点
    jioswu
    jioswu
    Oct 24, 2023
    19
    换语言是成本最低的,前提是自己会,否则加机器上负载均衡
    pkoukk
    pkoukk
    Oct 24, 2023
    20
    你这其实是两个问题
    1 、怎么防止被打
    2 、怎么提高服务性能
    方案太多了,一切以你的预算为前提
    asLw0P981N0M0TCC
    asLw0P981N0M0TCC
    Oct 24, 2023
    21
    自己先主动崩
    freezebreze
    freezebreze
    Oct 24, 2023
    22
    鸵鸟模式
    dashabi
    dashabi
    Oct 24, 2023
    23
    并发 1000 ?我站每天有 8 万访问,在线人数 2000-3000.都没达到 并发 1000 、、厉害啊。
    是每个请求处理时间长???有 1000 并发,,弄个高档服务器。
    MeteorCat
    MeteorCat
    Oct 24, 2023 via Android
    24
    买高防清洗掉攻击 IP
    alsas
    alsas
    Oct 24, 2023
    25
    加机器
    kkkbbb
    kkkbbb
    Oct 24, 2023
    26
    @dashabi 他是模拟
    ShuWei
    ShuWei
    Oct 24, 2023
    27
    先在入口限流吧,然后再排查下为什么彻底宕了,估计是有 bug 修修
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1227 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 23:41 · PVG 07:41 · LAX 15:41 · JFK 18:41
    ♥ Do have faith in what you're doing.