架构师训练营第五周总结
第五周主要讲缓存、消息队列与异步架构、负载均衡、分布式数据库等。
常用缓存:

缓存特点:
1.高速
2.命中率要高
3.缓存键
4.缓存可使用内存空间
5.缓存对象生存时间
缓存分类:
通读缓存:

旁路缓存:

分布式对象缓存的一致性 Hash 算法
主要解决增加或删除节点可能引起的缓存雪崩问题。
算法的要点在于对节点进行 Hash 运算得出节点的 Hash 值。
Key 获取存储服务器的时候,先计算 Hash 值,然后按顺时针顺序拿最近的节点。
当删除一个节点时,则自动拿到下一个节点;当增加一个节点时,新增的节点会截获一部分 Key。
还可以增加虚拟节点,以提高分布均匀性。
各种介质数据访问延迟

由这个表可以看出操作数据尽量使用前三种,可大大节约操作时间。
技术栈各个层次的缓存

合理使用缓存
1.频繁修改的数据不要缓存
2.没有热点的数据不要缓存
3.注意数据不一致或脏读
4.注意缓存雪崩
5.缓存预热
6.缓存穿透:读取不存在的数据时发生,策略:将高频不存在数据存储在缓存中(value 设置为 null)
常用缓存
redis 和 memcache
消息队列与异步架构

负载均衡架构

几种常用的负载均衡架构
HTTP 重定向负载均衡

优点:
缺点:
实现:
DNS 负载均衡

优点:
缺点:
实现:
反向代理负载均衡:

优点:
缺点:
实现:nginx
IP 负载均衡

优点:
缺点:
实现:
数据链路层负载均衡

优点:
缺点:
实现:
负载均衡算法

负载均衡的 Session 管理
Session 复制

Session 绑定

利用 Cookie 记录 Session

Session 服务器

分布式数据库
MySQL 主从复制

MySQL 一主多从

优点:
分摊负载
专机专用
便于冷热备
高可用
MySQL 主主复制

MySQL 主主失效恢复

MySQL 主主失效的维护过程

MySQL 复制注意事项:

数据分片
NOSQL
CAP 原理
ZooKeeper
搜索引擎
版权声明: 本文为 InfoQ 作者【王鑫龙】的原创文章。
原文链接:【http://xie.infoq.cn/article/b466c44718ee212716668da63】。
本文遵守【CC BY-NC】协议,转载请保留原文出处及本版权声明。
评论