学习总结 - 架构师训练营 - 第五周
缓存
介于访问者和数据源之间;
用于加快读取速度
Cache解决时间问题,Buffer解决空间问题
关键指标:缓存命中率
影响因素:缓存键集合的大小(键数量);缓存可用内存空间;缓存对象生存时间。
键数量越少,缓存的效率越高;
缓存可用内存空间决定了缓存对象的平均大小和缓存对象的数量;
缓存对象生存时间越长,被重用的可能性越高。
缓存架构:
代理缓存:客户端访问缓存,未命中时转发到服务端;
反响代理缓存:客户端访问服务端,服务端访问缓存;
多层反响代理缓存:
CDN:第一个客户端访问服务端,之后客户端访问缓存
缓存类型:
通读缓存:客户端连接缓存;缓存未命中时,缓存服务器请求数据;
旁路缓存:客户端连接缓存和实际服务器;缓存未命中时,客户端向实际服务请求数据;
缓存分布/负载均衡算法 - 一致性Hash
解决问题:
服务器的增减,只有部分数据和服务器的关系需要变动;
均匀分布。
Hash环:服务器和数据都落在环上;
虚拟节点:服务器管辖范围均匀分布

缓存提升性能:
访问速度快;
减少中间计算;
降低I/O、网络负载
缓存适用范围:
数据读写比2:1以上
有热点数据
容忍数据不一致和脏读(删缓存)
缓存雪崩(缓存不可用或大量失效)、缓存预热、缓存穿透(大量访问不存在的数据,可短期缓存不存在的数据)
Redis集群 - 桶 - 节点
消息队列
耗时操作异步调用;
生产者 - 消息队列 -消费者
良好的伸缩性;
削峰填谷
生产者和消费者解耦,失败隔离和自我修复
负载均衡
HTTP重定向负载均衡:客户端 - 负载均衡服务器,客户端- 重定向的web服务器url。负载均衡服务器属于数据中心。

DNS负载均衡:类似HTTP重定向负载均衡,DNS不在数据中心中。

反向代理负载均衡:客户端 - 负载均衡服务器,负载均衡服务器 - 转发web服务器。请求根据算法落在特定的服务器。负载均衡服务器在数据中心。


IP负载均衡:

数据链路层负载均衡:

负载均衡算法:
轮询、加权轮询、随机、最少连接、源地址散列
Session管理:
session复制、session绑定、Cookie记录session、Session服务器
mysql
主从、一主多从、主主

注:会过滤binlog中,同步过来的log,不会造成循环。
提高并发读能力,不能增加并发写和存储能力
评论