码迷,mamicode.com
首页 > 其他好文 > 详细

如何应对雪崩式的请求

时间:2020-07-31 16:36:27      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:流量   集中   失效   解决   系统   src   缓存   分类   机制   

如何应对雪崩式请求?

雪崩式请求:当服务提供方由于某种原因挂掉导致服务调用方阻塞,最终引发系统的雪崩式崩溃称为雪崩。

通常可分为两种:缓存雪崩和应用雪崩

缓存雪崩:缓存服务器挂掉、突发流量导致局部缓存失效、热点缓存失效;常用三种解决方案:为不同的缓存设置不同的失效时间,避免缓存集中失效;使用锁机制控制数据库访问及重新更新缓存;HA设计(redis集群、读写分离等)

雪崩发生时间分类:程序BUG、突发流量、缓存失效、线程等待、数据库压力、服务器故障

应用程序雪崩分为两类:容错机制(熔断机制、隔离机制)和预防机制(超时机制)

隔离机制:1)服务提供方为每一个依赖都申请一个线程池,可应对突发请求;2)服务提供方严格控制请求处理的数量,无法应对突发请求(原子变量或者令牌桶算法)。

熔断机制:1)容错阈值;2)重试等待时长;3)重试请求,服务器调用方会监控服务的相关信息,例如CPU、内存、线程数、请求失败次数等信息,监测是否达到阈值,状态的切换如下图。

技术图片

第三个就是超时处理:任务被加入中间队列时增加时间戳,对于服务提供方而言当任务等待时间过长、或者任务处理时间过长就会立即返回失败或者降级处理。

如何应对雪崩式的请求

标签:流量   集中   失效   解决   系统   src   缓存   分类   机制   

原文地址:https://www.cnblogs.com/zhilong233/p/13409844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!