架构师训练营第五周总结
分布式缓存架构
缓存常用存储的数据结构是Hash表,查询时间复杂度是o(1)
具体key value 的值存在哪个集群服务器上,是利用hash表的方式,记录这个key 具体存在那个服务器上
一些缓存数据库的核心技术点主要是一致性hash算法
队列和异步架构
点对点模型
生产者 --> 队列 <-- 消费者
队列里的消息只会被处理一次
发布订阅模型
每个消费者管理自己独立的队列,以topic的方式来处理
好处
异步处理,提升处理性能,主要可以提升写的性能
伸缩性更好
削峰填谷
失败隔离,自我修复
解耦
注意点
1.异步处理的时候,有可能消费者执行是不成功的
处理方式:一般同步不直接返回结果,等异步处理成功后,通知客户端。
可以长连接,或者轮询等
消息队列延伸的架构
事件驱动架构EDA
负载均衡架构
负载均衡,核心:请求如何分发,路由如何选择
架构模式
1.Http重定向负载均衡
利用重定向响应,请求头修改为某个服务器地址
缺点:要进行两次http请求,耗流量,性能差,应用服务器必须要暴露在外网
2.DNS负载均衡
域名绑定多个ip地址,每次请求解析出一个ip地址,然后请求应用服务器
缺点:不符合高可用,有服务器宕机后,还是会不断访问这个服务器,域名解析的ip地址所在服务器,不会是应用服务器,还是负载均衡服务器,是二级负载均衡
3.反向代理负载均衡,七层负载均衡
利用负载均衡服务器,发起http请求,返回response,再返回给客户端
缺点:这种负载均衡服务器本质上也是个http web服务器,负载压力也是有瓶颈的,几台,可以使用
4.ip负载均衡,三层负载均衡
分发的包是tcp/ip的包,负载压力比较小
缺点:请求响应依然通过负载均衡服务器
5.数据链路负载均衡 二层负载均衡
请求数据包,不修改ip地址,修改mac地址
负载均衡算法
轮询
加权轮询
随机
最少连接
源地址散列
分布式数据库
mysql 主从复制
主从复制架构,可以把一些比较复杂的报表单独让一台服务器处理
主主复制
评论