【架构师从入门到进阶】第一章:架构设计基础——第五节:架构演进(缓存到微服务)
上一篇文章我们讲到了架构演进中的数据库读写分离阶段,本篇文章我们继续讲架构演进的进阶阶段。
cdn和反向代理
随着我们用户量的不断扩大,访问量的继续增长,我们的用户会分布在全国各地,比如说北京、上海、广州。不同地区的用户访问网站的时候,速度差别也很大。有研究表明,网站访问延迟和用户的流失率成正比,也就是说,延迟越大,用户流失率越高。
我们自己用网站也是一样的,一个网站响应特别慢,我们就不想用它了。网站访问越慢,用户越会因为没有耐心而离开。为了提供更好的用户体验,留住用户,需要加速网站的访问速度。我们在这个阶段,加速网站速度的手段,可以用cdn和反向代理。
这里所说的反向代理,很多人可能会和前面所说的集群混淆。因为有nginx,它既是反向代理,又是负载均衡的一个组件,好多人可能以为反向代理就是负载均衡。其实并不是,比如说微服务中的ribbon是,它只做负载均衡,并没有反向代理。
在我们的系统进化中,怎么去用反向代理呢?其实就是在我们的整个系统的前端,加一些东西。比如说我们有cdn服务器,我们先把cdn加上,然后,再有反向代理。
其实这里面cdn和反向代理本质上都是缓存,为什么说缓存呢?
cdn是,content deliver network,也就是内容分发网络,