【总结】技术选型
分布式缓存架构
缓存
介于数据访问者与数据源之间的高速存储,当数据需要多次读取时,用于加快读取的速度。
缓存数据通常来自内存,比磁盘上的数据有更快的访问速度
缓存存储数据的最终形态,不需要中间计算,减少CPU资源的消耗
缓存降低数据库、磁盘、网络的负载压力,使这些I/O设备获得更好的响应特性
缓存命中率
缓存是否有效依赖于能多少次重用同一个缓存响应业务请求,这个度量指标被称为缓存命中率
如果查询一个缓存,十次查询九次能够得到正确结果,那么它的命中率是90%
影像缓存命中率的主要指标
缓存键集合大小:缓存键越少,缓存的效率越高
缓存可使用的内存空间:直接决定了缓存对象的平均大小和缓存对象的数据
缓存对象的生存时间:缓存时间越长,缓存对象被重用的可能性越高
缓存类型
代理缓存
反向代理缓存
多层反向代理缓存
内容分发网络(CDN)
CDN同时配置静态文件和动态内容
通读缓存
代理缓存、反向代理、CDN是通读缓存,给客户端返回缓存资源,并在未命中缓存时获取实际数据
旁路缓存
对象缓存是旁路缓存,应用询问缓存对象是否存在,存在的话就获取并使用缓存对象,不存在的话,应用直接连接数据源来组装数据,并将其保存回对象缓存中以便将来使用
合理使用缓存
频繁修改的数据
没有热点的访问
数据不一致与脏读
建议数据更新时通知缓存失效
缓存雪崩
当缓存服务崩溃时,数据库受到极大的数据访问压力而宕机,进而导致整个网站不可用
缓存穿透
不存在的数据也缓存起来(其value值为null),并设定一个较短的失效时间,防止不恰当的业务或者恶意攻击持续高并发的请求某个不存在的数据
浏览器对象缓存
本地对象缓存
分布式对象缓存
基于虚拟节点的一致性hash算法
用于解决分布式缓存动态扩容时的数据一致性问题
各类介质数据访问延时
技术栈各个层次的缓存
Redis集群
消息队列架构
点对点模型
发布订阅模型
优点
实现异步处理,提升处理性能
更好的伸缩性
削峰填谷
失败隔离和自我修复
生产者和消费者互相不受对方失败影响
解耦
主要MQ产品比较
负载均衡架构
DNS负载均衡
反向代理负载均衡
IP负载均衡
数据链路层负载均衡
评论