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

用户头像
张明森
关注
发布于: 2020 年 07 月 04 日

第一课 Cache

缓存:多次读数据时,加快访问速度

缓冲:Buffer 读写数据时;常见于IO操作

1.缓存数据存储

1.hash表

hash算法:随机值,key相同则随机值不变;数据初始内存地址+单个元素占用空间*随机值

指标:缓存命中率

影响因素:键集合大小、缓存可用内存空间、缓存对象生存时间

2.常见缓存及种类

通读缓存:客户端->通读缓存->服务

1.代理缓存:用户端

2.反向代理缓存:nginx缓存

多次反向代理缓存

3.CDN:离用户近的网络服务商的机房

旁路缓存:客户端-->服务

1.浏览器对象缓存

2.本地对象缓存

3.分布式缓存

1.本地对象缓存构建分布式集群

缺点集群间缓存同步网络通信频繁、空间不存

2.分布式对象缓存

Memcached

余数哈希

路由算法:取余

伸缩:大量缓存不命中,数据打到数据库

一致性哈希

node、key、环(2^32-1)、虚拟节点(解决数据倾斜)

缓存:高速访问;存储最终结果节省CPU;降低IO

缓存注意事项:

1.数据读写2:1以上;

2.缓存热点数据;

3.可以允许数据不一致与脏读;

4.避免缓存雪崩;

5.缓存预热

6.缓存穿透(缓存以避免数据达到后端存储)

Redis集群

复杂数据结构;多路复用;主从复制;原生集群

第二课 异步&集群

消息队列

同步调用 VS 异步调用:程序不会阻塞;回调函数

消息队列:实现异步处理,提升处理性能;优化写操作

优点:更好的伸缩性;削峰填谷;失败隔离和自我修复(生产者、消费者互不影响);解耦

事件驱动架构EDA: 耦合度低

负载均衡架构

解决问题:路由选择;网络通信

1.HTTP重定向负载均衡

暴露应用服务器

2.DNS负载均衡

DNS缓存;

3.反向代理负载均衡

小规模:HTTP协议较重,数据传输大,易成为瓶颈

4.IP负载均衡

转发TCP包;修改源地址、目标地址;

网络输出(响应)网卡带宽是瓶颈

5.数据链路层负载均衡

应用服务器直接返回客户端;虚拟IP;MAC地址

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

Session管理方案

1.Session复制

2.Session绑定:IP地址散列;服务重启时会话失效

3.Cookie记录Session

4.Session服务器

分布式数据库

MySQL主从复制

Binlog;Relay log;关闭DDL同步(耗时长);

一主多从:分摊负载;专机专用;冷备、热备;高可用

MySQL主主复制:

不能同时写;写高可用;

用户头像

张明森

关注

还未添加个人签名 2017.10.16 加入

还未添加个人简介

评论

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