【面试题解析】-- 20200410Java软件开发工程师面试题解析

1. 什么是缓存穿透?如何解决缓存穿透?

所谓的缓存穿透,指的就是因为在数据库中不存在某行数据,然后在缓存中也不存在对应key值,导致请求这行数据时总是直接访问数据库。解决缓存穿透,只需要在数据库访问后,如果没有查询到指定值,就保存一个空值到缓存中即可。

2. 什么是缓存雪崩?如何解决缓存雪崩?

所谓的缓存雪崩,指的是多个缓存key几乎在同一时间失效。要解决缓存雪崩,只需要为每个缓存设置不一样的过期时间,比如通过一个常量与随机数的乘积计算出失效时间。

3. 什么是缓存击穿?如何解决缓存击穿?

所谓的缓存击穿,指的是某个热点key在某一时间段失效,并且这个时候是并发量比较大的时间段,这个时候将导致数据库压力倍增。要解决缓存击穿,可以通过在访问数据库时,通过加分布式锁或者是限流的手段解决。

4. 什么是单点故障?

单点故障,出现在分布式系统中,比如现在有三个服务器,其中一个是主服务器(如服务网关),其他两个是从服务器(服务提供者),如果这个时候主服务器出现问题宕机,那么服务提供者提供的服务也就无法正常被访问了。要解决这个问题可以通过集群化部署实现,比如部署多个主服务器。

5. 什么是服务熔断?

服务熔断,又称熔断机制它是服务链路保护的一种策略,当某个服务不可用时,将会在它的父级调用者触发熔断机制,以达到快速返回错误信息,以及保护其他服务的作用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值