课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
缓存功能是程序员在开发网页的时候会添加的一种功能,而今天我们就通过案例分析来了解一下,缓存功能在哪些情况下是不可用的。
1、单点问题:
什么是单点问题呢?就是我们在使用缓存时,有时候由于QPS、内存容量只需要一个端口(此处的一个端口是指一主一从)就可以扛住所有读写请求时,比如写QPS5k,读QPS30k,内存5G;根据这个数据规模,DBA在部署资源时会选择只部署一个节点。当缓存资源由于某些情况导致服务器宕机或服务不可用时,由于只部署了一个端口,从而导致当前整个应用服务不可用(这种情况之前在实际生产环境中真实发生过,直接炸裂),这就是所谓的单点问题;其实在分布式架构中,为了做到服务的高可用,要尽量去避免单点问题,做到鸡蛋尽量不放在一个篮子里来尽量保证服务的可用性。
2、缓存穿透/缓存击穿
缓存穿透/缓存击穿是指某些时刻由于有些热key失效或者是过期,导致在一瞬间大量请求绕过缓存直接打到DB上,由于DB的读写qps并不高,从而导致DB直接瞬间被打挂,尤其是在微博这种应用上,突发热点流量加上缓存设计不合理导致热key过期,就会发生缓存击穿的情况。
3、缓存雪崩
缓存雪崩是指由于缓存过期时间设计不合理,缓存数据过期时间集中,导致在某一时刻缓存中数据大面积过期,从而导致缓存的miss率大大增加,由于缓存没有拦住请求导致大量请求落到DB上,终导致后端DB资源被彻底打挂,即使重启DB也会被大量请求瞬间再次打挂。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。