缓存穿透、击穿、雪崩

缓存穿透、缓存击穿、缓存雪崩分别是什么

缓存中存放的大多是热点数据,目的就是防止请求可以直接从缓存中获取数据,而不用访问Mysql。

1、缓存雪崩:如果缓存中某一时刻大批热点数据同时过期,那么就可能导致大量请求直接访问MySQL了,解决办法就是在过期时间上增加一点随机值,另外如果搭建一个高可用的Redis集群也是防止缓存雪崩的有效手段

2、缓存击穿:和缓存雪崩类似,缓存雪崩是大批热点数据失效,儿缓存击穿是指某一个热点key突然失效,也导致了大量请求直接访问Mysql数据库,这就是缓存击穿,解决方案就是考虑这个热点key不设置过期时间;

3、缓存穿透:假如某一时刻访问redis的大量key都在redis中不存在(比如黑客故意伪造一些乱七八糟的key),那么也会给数据造成压力,这就是缓存穿透,解决方案是使用布隆过滤器,它的作用就是如果它认为一个Key不存在,那么这个key就肯定不存在,所以可以在缓存之前加一层布隆过滤器来拦截不存在的Key

什么是服务熔断?什么是服务降级?区别是什么?

1、服务熔断是指,当服务A调用的某个服务B不可用时,上游服务A为了保证自己不受影响,从而不再调用服务B,直接返回一个结果,减轻服务A和服务B的压力,直到服务B恢复。

2、服务降级是指,当发现系统压力过载时,可以通过关闭某个服务,或限流某个服务来减轻系统压力,这就是服务降级。

相同点:1、都是为了防止系统崩溃;

               2、都让用户体验到某个功能暂时不可用

不同点:熔断是下游服务故障触发的,降级是为了降低系统负载

什么是服务雪崩?什么是服务限流?

1、当服务A调用服务B,服务B调用C,此时大量请求突然请求服务A,假如服务A本身能抗住这些请求,但如果服务C扛不住,导致服务C请求堆积,从而服务B请求堆积,从而服务A不可用,这就是服务雪崩,解决方式就是服务降级和服务熔断。

2、服务限流是指在高并发请求下,为了保护系统,可以对访问服务的请求进行数量上的限制,从而防止系统不被大量请求压垮,在秒杀中,限流是非常重要的。

负载均衡算法有哪些?

1、轮询法:将请求按顺序轮流的分配到后端服务器上,它均衡的对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。

2、随机法:通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问,由概率统计理论可以得知,随着客户端调用服务端的次数增多,其实际效果越来越接近平均分配调用量到后端的每一台服务器,也就是轮询的结果。

3、源地址哈希法:源地址哈希的思想是根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务列表的大小进行取模运算,得到的结果便是客户端要访问的服务器序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

4、加权轮询法:不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同,给配置高,负载低的机器配置更高的权重,让其处理更多的请求,而配置低,负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好的处理这一问题,并将请求顺序且按照权重分配到后端。

5、最小连接数法:最小连接数算法比较灵活和智能,由于后端服务器的配置不尽相同,对于请求的处理有快有慢,它是根据后端服务器当前的连接情况,动态的选取其中当前积压连接数最少得一台服务器来处理当前的请求,尽可能的提高后端服务的利用率,将负责合理的分流到每一台服务器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值