西安健康码分析
业务场景:读多写少, 考虑使用缓存中间件
1.客户端 做防抖节流,二维码图片根据服务器传过来的字符串在客户端生成,而不是服务端,以减少服务端带宽占用
2.出现错误时给用户一个友好提示
3.服务端未作限流措施导致客户端请求全失败,缓存穿透,没击中缓存就设置null值防止数据库抗太大压力,等缓存失效后再从数据库读取,好的方案使用布隆过滤器
缓存击穿应对方案 阻塞多个线程只让一个线程去读取数据库
缓存雪崩 把超时时间设置的离散一点
缓存一致性使用cache aside,先更新数据库在删除缓存,技术层面再高点延迟双删
4.对于瞬时增高的压力未作全面的性能测试,场景考虑不充分
5.服务没有做拆分, 分布式、微服务可以做到故障隔离,把核心和非核心业务隔离开
6.数据库主从一致性,半同步然后异步
缓存穿透、缓存击穿、缓存雪崩区别和解决方案
本文来自博客园,作者:up~up,转载请注明原文链接:https://www.cnblogs.com/soft-engineer/p/15779991.html