架构师训练营第 1 期第 五 周学习总结

用户头像
郑凯元
关注
发布于: 2020 年 10 月 25 日

分布式缓存架构:架构原理和使用中的注意事项

缓存:

存储再计算机上的一个原始数据复制集,缓存介于数据访问者和数据源之间的一种高速存储,当数据多次读取时,用于加快读取的速度

缓存数据存储:

可采用Hash表

缓存关键指标

缓存命中率:

缓存是否有效依赖于能多少次重用同一个缓存响应业务请求,这个度量标准被称为缓存命中率

如果查询一个缓存,十次查询九次能够得到正确结果,那么他的命中率是90%

影响缓存命中的主要指标:

  • 缓存健集合大小:缓存的对象使用缓存键进行识别

  • 缓存可使用内存空间:决定缓存对象的平均大小和缓存对象数量

  • 缓存对象生存时间:对象缓存的时间越长,缓存对象被重用的可能性就约稿



通读缓存

  • 代理缓存、反向代理缓存、CDN缓存都是通读缓存

  • 通读缓存给客户端返回缓存资源,并在请求未命中时获取实际数据

  • 客户端连接的事通过缓存而不是响应的原始服务器



旁路缓存

  • 对象缓存是一种旁路缓存,旁路缓存通常时一个独立的键值对存储。

浏览器缓存

本地对象缓存

  • 对象直接缓存在应用程序内存中

  • 对象存储在共享内存,同一台机器的多个进程可以访问它们

  • 缓存服务器作为独立应用和应用程序部署在同一个服务器上







缓存显著提升性能原因

  • 缓存数据通常来自内存,比磁盘的数据有更快的访问速度

  • 缓存存储数据的最终结果形态,不需要中间计算,减少CPU资源的消耗

  • 缓存降低数据库、磁盘、网络的负载压力,使这些I/O设备获得更好的响应特性



缓存注意点:

  • 频繁修改的数据:徒增系统负担

  • 没有热点的访问:浪费宝贵的内存资源

  • 数据不一致与脏读:

  • 缓存雪崩

  • 缓存预热:启动时加载热点数据,减少对系统性能和数据库负载压力

  • 缓存穿透:



消息队列和异步架构



写数据用消息队列实现异步架构来实现优化



消息队列的好处:

实现异步处理,提升处理性能

更好的收缩性

削峰填谷



事件驱动架构EDA

好处

解耦合

削峰填谷

失败隔离

线性伸缩

新功能扩展





负载均衡架构

http重定向负责均衡:

一次请求变两个请求,请求效率降低

安全性比较差

DNS负载均衡

域名解析负载均衡

域名解析

安全性比较差



反向代理负载均衡

应用于比较小规模的系统,几台十几台规模

效率比较低,性能比较差,基于http协议包转换



IP负载均衡

网卡带宽成为瓶颈,成为响应瓶颈

数据链路层负载均衡《三角模式》



响应不用再经过负载均衡服务器,降低负载均衡服务器计算负载压力



Session复制

很难提升性能,消耗服务器资源



Session绑定

关注性能,关注高可用

利用Cookie记录Session

Cookin大小有限,权限受限

Session服务器

常用的设计

无状态服务器,share nothing分布式架构



用户头像

郑凯元

关注

还未添加个人签名 2018.04.28 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第 1 期第 五 周学习总结