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

发布于: 2020 年 07 月 08 日

缓存:用来多次读取,加快读取速度

缓冲:高速设备读写低速设备时加一层,用于加快访问速度。

缓存无处不在

CPU缓存、操作系统缓存、数据库缓存、JVM编译缓存

CDN缓存、代理与反向代理缓存、前端缓存、应用程序缓存、分布式对象缓存

缓存一般使用hash表

key:value形式,对key取hashcode,取模存储。

缓存的关键指标:

缓存命中率,查询时命中缓存的比例。

三个因素,key集合大小,缓存空间大小,缓存生存时间

缓存类型:

放置位置:

代理缓存,反向代理缓存,内容分发网络(CDN)

访问方式:

通读缓存,旁路缓存

本地对象缓存

本地对象缓存分布式集群   例: jboss cache。此方案很快淘汰了 ,因为同步占用了太多网络带宽和CPU,影响性能。

现在是

远程分布式对象缓存

例:Memcached,集群之间无感知,share nothing。

分布式系统核心技术:路由,伸缩

路由:使用哪一台服务器

伸缩:增减服务器怎么不影响当前使用

一致性hash算法

不合理使用缓存:

频繁修改的数据,没有热点的数据

常见场景

数据不一致和脏读(小技巧:提示用户发布的信息要审核),缓存雪崩,缓存预热,缓存穿透

负载均衡

1,HTTP重定向负载均衡

问题:两次HTTP请求,性能差。暴露内网服务器IP。

2,DNS负载均衡

问题:应用服务器宕机时无法及时生效,后面还是要接一级代理分发服务器。

3,反向代理负载均衡

问题:http协议较重,请求反应慢,代理服务器成为瓶颈。

优化:改为使用IP负载均衡,

再进一步优化:数据链路层负载均衡,返回响应数据不再通过负载均衡服务器。这还是现在大型网站常用的,负载均衡三角模型。

负载均衡算法:

轮询、加权轮询、随机、最少连接、源地址散列

session管理方法

1,session复制,已淘汰

实现:将session复制同步到所有服务器。

问题:集群规模受限制。网络压力大。

2,session绑定,已淘汰

实现:会话粘滞,根据IP地址源地址散列。

问题:应用升级时服务器关闭无法处理,无法高可用。

3,利用Cookie记录session,生命力强现在还有使用的。

实现:用户端记录一个Cookie每次请求时携带。互联网发展早期常用,对服务器开发要求低。

问题:多发一个cookie,占用带宽。

4,session服务器,当前最常用方案

实现:用共享session服务器存储session。

分布式数据库

主从复制

一主多从

主主复制

用户头像

吕浩

关注

还未添加个人签名 2018.04.27 加入

还未添加个人简介

评论

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