image

编辑人: 独留清风醉

calendar2025-06-01

message5

visits920

高并发系统如何保护系统?

分析&回答

我们一般的应对策略是缓存、降级和限流!

缓存

缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;

  1. 本地缓存,控制单机请求量很有效,如果分布式缓存承压的情况下也可以通过本地缓存先进行过滤。
  2. 分布式缓存,对于处理整体业务的高并发很有用,但是也会存在一下问题,比如:缓存穿透、缓存击穿、缓存雪崩

降级

降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;

  • 降级可以降低响应时效,也可以削减非必要功能。

限流

限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页或告知资源没有了)、排队或等待(比如秒杀、评论、下单)、降级(返回兜底数据或默认数据,如商品详情页库存默认有货)。

一般开发高并发系统常见的限流有:

  1. 限制总并发数(比如数据库连接池、线程池)
  2. 限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)
  3. 限制时间窗口内的平均速率(如Guava的RateLimiter、nginx的limit_req模块,限制每秒的平均速率)
  4. 其他还有如限制远程接口调用速率、限制MQ的消费速率。
  5. 另外还可以根据网络连接数、网络流量、CPU或内存负载等来限流。

反思&扩展

说说高并发限流策略


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:高并发系统如何保护系统?

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share