架构师训练营——第 5 周学习总结
如果说上周是对互联网架构整体有个认识,在心里大概有个大框架,那么这周就是对里面使用到的一些主流的技术架构进行了详细的讲解。
1、分布式缓存架构
缓存:介于数据访问者与数据源之间的一种高速存储,当数据需要多次读取时,提高数据读取的速度。(如果数据不是经常使用那使用缓存就没有意义反而会影响性能)
缓存的关键指标:缓存命中率
影响缓存命中率指标:缓存键集合大小、缓存可使用内存空间、缓存对象生存时间
缓存类型:
通读缓存(代理缓存、反向代理缓存、CDN缓存):客户端连的是通读缓存而不是原始服务器
旁路缓存(对象缓存):获取缓存对象不存在或者过期,应用会连数据源,对象组装保存回对象缓存中
本地对象缓存:对象直接缓存在应用服务器中,缓存服务器和应用服务器部署在一起。缺点:需要更新同步到其他应用服务器,资源浪费,性能消耗大;
远程分布式对象缓存:Memcached 使用一致性hash算法,缓存服务器并不知道有其他缓存服务器存在;redis 支持复杂数据结构,缓存服务器知道在一个集群中,连接集群中任何一个可用节点都可以获取,节点互联。
2、消息队列和异步架构
消息队列异步架构组成:消息生产者、消息队列、消息消费者
消息队列模型:点对点模型,发布订阅模型
消息队列好处:实现异步处理,提升处理性能;更好的伸缩性;削峰填谷;失败隔离和自我修复;解耦;
主流产品:RabbitMQ、ActiveMQ、RocketMQ、Kafka
3、负载均衡服务器
负载均衡架构:HTTP重定向负载均衡、DNS负载均衡、反向代理负载均衡、IP负载均衡、数据链路层负载均衡
负载均衡算法:轮询、加权轮询、随机、最少连接、原地址散列
session管理:session复制、session绑定、利用cookie记录session、session服务器
4、分布式数据库
MySQL复制:主从复制、一主多从复制、主主复制
主主复制两个数据库不能并发写入;复制只是增加读并发处理能力,没有增加写并发处理能力和存储能力;更新表结构会导致巨大的同步延迟;
评论