架构师训练营第 5 周总结

发布于: 10 小时前

分布式缓存架构

缓存:介于数据访问者与数据源之间的一种高速存储,当数据需要多次读取时,提高数据读取的速度。(如果数据不是经常使用那使用缓存就没有意义反而会影响性能)

缓存的关键指标:缓存命中率

影响缓存命中率指标:缓存键集合大小、缓存可使用内存空间、缓存对象生存时间

缓存类型

通读缓存(代理缓存、反向代理缓存、CDN缓存):客户端连的是通读缓存而不是原始服务器

旁路缓存(对象缓存):获取缓存对象不存在或者过期,应用会连数据源,对象组装保存回对象缓存中

本地对象缓存:对象直接缓存在应用服务器中,缓存服务器和应用服务器部署在一起。缺点:需要更新同步到其他应用服务器,资源浪费,性能消耗大;

远程分布式对象缓存:Memcached 使用一致性hash算法,缓存服务器并不知道有其他缓存服务器存在;redis 支持复杂数据结构,缓存服务器知道在一个集群中,连接集群中任何一个可用节点都可以获取,节点互联。

分布式缓存的常见问题:

缓存穿透(解决方案:放入一个特殊对象)

缓存击穿(解决方案:更新缓存时使用分布式锁锁住服务,防止请求穿透直达DB)

缓存雪崩(解决方案:缓存时间使用基本时间加上随机时间)

消息队列和异步架构

消息队列异步架构组成:消息生产者、消息队列、消息消费者

消息队列模型:点对点模型,发布订阅模型

消息队列好处:实现异步处理,提升处理性能;更好的伸缩性;削峰填谷;失败隔离和自我修复;解耦;

主流产品:RabbitMQ、ActiveMQ、RocketMQ、Kafka

负载均衡服务器

负载均衡架构:HTTP重定向负载均衡、DNS负载均衡、反向代理负载均衡、IP负载均衡、数据链路层负载均衡

负载均衡算法:轮询、加权轮询、随机、最少连接、原地址散列

session管理:session复制、session绑定、利用cookie记录session、session服务器

分布式数据库

MySQL复制:主从复制、一主多从复制、主主复制

主主复制两个数据库不能并发写入;复制只是增加读并发处理能力,没有增加写并发处理能力和存储能力;更新表结构会导致巨大的同步延迟;

用户头像

时来运转

关注

还未添加个人签名 2019.02.26 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第5周总结