高并发系统的三把利剑(缓存,降级,限流)

本文介绍了高并发系统应对618抢购等场景的解决方案,包括缓存(如Redis、Memcached)来提升性能和减轻数据库压力,降级策略(Spring Cloud Hystrix的自动和人工降级),以及限流技术(如计数器、漏桶、令牌桶算法)。还探讨了应用级限流和分布式限流的实现,如Tomcat线程池配置和Nginx+Lua的前置化限流。
摘要由CSDN通过智能技术生成

下咽顿除烟火气,入齿便作冰雪声。 文天祥 西瓜吟

 

场景 : 618抢购。 很多系统宕机,很多服务500(404)。

 

发生这个场景的问题所在:

1: 独立api频繁被调用

2:电商网站某个模块入口被瞬间挤爆

3: 调用第三方网站api,我方请求过多,第三方网站无法及时响应,服务器排队太多宕机。

 

针对不同的场景,使用不同的限流算法来避免网站不可用。

 

 

高并发系统的三把利剑

1:缓存

1.1 缓存目的 : 提升系统访问速度和增大系统能处理的容量。提升性能,缓解数据库压力

1.2 缓存的方式: redis , memcached

1.3 缓存带来的问题

【1】、缓存穿透:缓存穿透是说收到一个请求,但是该请求缓存中不存在,只能去数据库中查询,然后放进缓存。
【2】、缓存击穿:上面提到的某个数据没有,然后好多请求查询数据库,可以归为缓存击穿的范畴:对于热点数据,当缓存失效的一瞬间,所有的请求都被下放到数据库去请求更新缓存,数据库被压垮。
【3】、缓存雪崩:缓存雪崩是指当我们给所有的缓存设置了同样的过期时间,当某一时刻,整个缓存的数据全部过期了,然后瞬间所有的请求都被抛向了数据库,数据库就崩掉了。
【4】、缓存刷新:既清空缓存 ,一般在insert、update、delete操作后就需要刷新缓存,如果不执行就会出现脏数据。但当缓存请求的系统蹦掉后,返回给缓存的值为null。   

 

2:降级 Spring Cloud Hystrix

2.1 人工降级

修改配置中心的配置,代码里面根据相关配置开关去执行不同的代码逻辑块。

2.2 自动降级

熔断策略

熔断本质上是一个过载保护机制

 

举例:

微服务A -》微服务B -》微服务C,如果微服务A需要发布新版本,会对B,C产生影响。

房子的排污管道从上至下,如果你家楼下的管道堵住了,污水会灌到你们家。这时候你先避免自己

家收到影响,然后通知楼下去疏通。

 

 

 熔断系统性能

 

3:限流

海底捞高峰时间,如果采取熔断,关门10分钟,会导致用户体验不好。

画图看看现有项目部署下的多层面限流实现

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值