新闻动态

缓存雪崩:什么是缓存雪崩?服务器雪崩的场景与解决方案

发布日期:2021-01-04 14:15 | 文章来源:YINGSOO

  【温馨提醒】文章内容仅供参考,海外服务器租用\托管方案,请咨询YINGSOO客服,24小时免费电话400-630-3752

  【热门主机】加拿大服务器韩国服务器香港cn2服务器美国 服务器

  【热搜问题】国外的服务器租用多少钱一年合适?

缓存雪崩

  什么是应用服务雪崩

  雪崩问题

  分布式系统都存在这样一个问题,由于网络的不稳定性,决定了任何一个服务的可用性都不是 100% 的。当网络不稳定的时候,作为服务的提供者,自身可能会被拖死,导致服务调用者阻塞,最终可能引发雪崩连锁效应。

  缓存雪崩

  当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如db)带来很大压力,造成数据库后端故障,从而引起应用服务器雪崩。

  雪崩效应产生的几种场景

流量激增:比如异常流量、用户重试导致系统负载升高; 缓存刷新:假设A为client端,b为server端,假设A系统请求都流向b系统,请求超出了b系统的承载能力,就会造成b系[高防服务器]统崩溃; 程序有bug:代码循环调用的逻辑问题,资源未释放引起的内存泄漏等问题; 硬件故障:比如宕机,机房断电,光纤被挖断等。 数据库严重瓶颈,比如:长事务、sql超时等。 线程同步等待:系统间经常采用同步服务调用模式,核心服务和非核心服务共用一个线程池和消息队列。如果一个核心业务线程调用非核心线程,这个非核心线程交由第三方系统完成,当第三方系统本身出现问题,导致核心线程阻塞,一直处于等待状态,而进程间的调用是有超时限制的,最终这条线程将断掉,也可能引发雪崩;

  缓存雪崩的解决方案

  缓存失效的几种情况:

  1、缓存服务器挂了

  2、高峰期缓存局部失效

  3、热点缓存失效

  解决方案:

  1、避免缓存集中失效,不同的key设置不同的超时时间

  2、增加互斥锁,控制数据库请求,重建缓存。

  3、[云主机计算器]提高缓存的HA,如:redis集群。

  雪崩的整体解决方案

  一般情况对于服务依赖的保护主要有3种解决方案:

  (1)熔断模式

  这种模式主要是参考电路熔断,如果一条线路电压过高,保险丝会熔断,防止火灾。放到我们的系统中,如果某个目标服务调用慢或者有大量超时,此时,熔断该服务的调用,对于后续调用请求,不在继续调用目标服务,直接返回,快速释放资源。如果目标服务情况好转则恢复调用。

  重点监控的机器性能指标

cpu(Load) cpu使用率/负载 memory 内存 mysql监控长事务(这里与sql查询超时是紧密结合的,需要重点监控) sql超时 线程数等

  总之,除了cpu、内存、线程数外,重点监控数据库端的长事务、sql超时等,绝大多数应用服务器发生的雪崩场景,都是来源于数据库端的性能瓶颈,从而先引起数据库端大量瓶颈,最终拖累应用服务器也发生雪崩,最后就是大面积的雪崩。

  (2)隔离模式

  这种模式就像对系统请求按类型划分成一个个小岛的一样,当某个小岛被火少光了,不会影响到其他的小岛。

  例如可以对不同类型的请求使用线程池来资源隔离,每种类型的请求互不影响,如果一种类型的请求线程资源耗尽,则对后续的该类型请求直接返回,不再调用后续资源。这种模式使用场景非常多,例如将一个服务拆开,对于重要的服务使用单独服务器来部署,再或者公司最近推广的多中心。

  (3)限流模式

  上述的熔断模式和隔离模式都属于出错后的容错处理机制,而限流模式则可以称为预防模式。限流模式主要是提前对各个类型的请求设置最高的Qps阈值,若高于设置的阈值则对该请求直接返回,不再调用后续资源。这种模式不能解决服务依赖的问题,只能解决系统整体资源分配问题,因为没有被限流的请求依然有可能造成雪崩效应。

  熔断设计

  在熔断的设计主要参考了hystrix的做法。其中最重要的是三个模块:熔断请求判断算法、熔断恢复机制、熔断报警

  (1)熔断请求判断机制算法:使用无锁循环队列计数,每个熔断器默认维护10个bucket,每1秒一个bucket,每个blucket记录请求的成功、失败、超时、拒绝的状态,默认错误超过50%且10秒内超过20个请求进行中断拦截。

  (2)熔断恢复:对于被熔断的请求,每隔5s允许部分请求通过,若请求都是健康的(Rt<250ms)则对请求健康恢复。

  (3)熔断报警:对于熔断的请求打日志,异常请求超过某些设定则报警。

  隔离设计

  隔离的方式一般使用两种

  (1)线程池隔离模式:使用一个线程池来存储当前的请求,线程池对请求作处理,设置任务返回处理超时时间,堆积的请求堆积入线程池队列。这种方式需要为每个依赖的服务申请线程池,有一定的资源消耗,好处是可以应对突发流量(流量洪峰来临时,处理不完可将数据存储到线程池队里慢慢处理)

  (2)信号量隔离模式:使用一个原子计数器(或信号量)来记录当前有多少个线程在运行,请求来先判断计数器的数值,若超过设置的最大线程个数则丢弃改类型的新请求,若不超过则执行计数操作请求来计数器+1,请求返回计数器-1。这种方式是严格的控制线程且立即返回模式,无法应对突发流量(流量洪峰来临时,处理的线程超过数量,其他的请求会直接返回,不继续去请求依赖的服务)

  超时机制设计

  (1)超时分两种,一种是请求的等待超时,一种是请求运行超时。

  (2)等待超时:在任务入队列时设置任务入队列时间,并判断队头的任务入队列时间是否大于超时时间,超过则丢弃任务。

  (3)运行超时:直接可使用线程池提供的get方法。

  如何提前发现雪崩

  就是首先让系统不雪崩,然后通过监控发现请求正在接近或者超过阀值,然后再根据具体情况处理,这个接近或者超过阀值的过程,可以称为 “提前发现雪崩”。

  以上就是应用服务雪崩的场景以及技术方案总结。有问题请联系本公司在线客服!

  

  香港云主机高速稳定便宜好用

  许多客户挑选建站全是挑选香港主机或是香港云主机,大伙儿为何喜爱租赁香港主机?

  香港主机的含意就是说放到香港机房大数据中心的服务器主机,中国香港因所在位置间距内地近在眼前,因此香港主机的延迟时间是很低的,响应时间快,速率和中国服务器非常。

  香港云主机不用备案,假如应用中国服务器得话是必须备案主机房才会帮你加进权限,主机房才会给你打开80端口号的浏览权,当你的网站域名是沒有备案过的,是不可以应用国内服务器开展建站的。

[海外vps云服务器]

  而香港云主机就沒有这种繁杂的程序流程,即买即用,不用备案。

  香港云主机器合适一些[惠州游戏服务器]对带宽防御力规定较低的客户,由于国际带宽费很价格昂贵,因此香港云主机的价钱对比中国服务器的价钱是高于一些的,一样香港云主机的防御力一般是很低的,且价格比较贵,

  YINGSOO电话:4006 303 752

  热门文章:【怎样有效管理Linux服务器系统的日志】【web服务器被攻击】【香港的服务器】【蜀门游戏】【国外便宜服务器】【我国需要多少个数据中心】【香港网站服务器YINGSOO怎么样】【新加坡服务器租用中有哪些常见问题】【动态计算】【服务器被攻击】【如何快速分辨海外高防服务器好坏】【台州机房】【游戏云主机配置】【网吧服务器多少钱一台】【java网游服务器】【服务器被攻击】【东莞云主机】【美国CN2线路】【如何辨别美国10G高防服务器真假】【最新美国vps】【YINGSOO美国服务器提供种类有多少】【2200G硬件防火墙】【美国多ip站群】【台湾服务器适合做什么类型的业务】【香港服务器端口知多少】【公司服务器租用中国香港的利与弊剖析】【裸金属主机】【香港bgp机房】【好用的云服务器】【传奇服务器租用

  香港快速主机,快速稳定,选知名品牌YINGSOO

  Yingsoo香港快速主机采用CN2电信直连香港,速度延迟低至10ms,快速,安全,稳定,免备案9年运营经验, 服务超过1200家企业客户,连续9年香港快速主机销量持续增长

  https://www.yingsoo.com/products/cloud-hk.html

  韩国主机,选知名品牌YINGSOO

  9年韩国主机业务运营经验,1200家企业客户共同选择.韩国Korea Telecom机房核心合作伙伴,机房带宽资源充足,到国内速度平均在80ms左右.

  https://www.yingsoo.com/products/cloud-kr.html

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部