大型网站技术架构

初始阶段

小型网站的架构很简单,访问量很少,一台服务器充当应用服务器、数据库服务器和文件服务器都绰绰有余。


应用服务与数据服务分离

随着业务量的增大,业务的处理能力遇到了瓶颈。CPU总是满负荷,文件越来越多,而数据库越来越繁忙。这时候需要增加服务器,将服务器的职能进行划分,分别是应用服务器、文件服务器和数据库服务器。


缓存技术改善网站性能

网站访问量的规律与现实世界中的财富分配一样遵循二八原则。80%的业务集中在20%的数据中,比如百度搜索的关键字集中在少数的热门词汇中,淘宝前几页的商品占了大部分的交易量。网站的架构设计依据这样的特点,将20%经常访问的数据缓存到访问数据快的内存中,可以降低响应时间。

网站的缓存分为 1)本地缓存 和 2)远程缓存。


集群技术提高网站的并发能力

组建应用服务器集群,再通过反向代理服务器做负载均衡,是目前普遍的方案。这样方便水平扩展,但是也引来了会话保存的问题。


数据库读写分离

虽然做了缓存,但是仍有一部分操作需要访问数据库,达到一定数量后,数据库的负载会过高,成为网站的瓶颈。通过主从热备功能,可以将一台数据库的数据同步更新到另一台。应用服务器需要写数据的时候,访问主库,需要读的时候,访问从库,系统因此能获得更高的处理性能。


使用反向代理和CDN加速网站响应

CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,使用户在请求服务时,从距离最近的ISP获取数据。反向代理是请求到达网站服务器后,从反向代理服务器中取缓存直接返回给用户。


分布式文件系统和分布式数据库系统

分布式数据库系统是网站数据库拆分的最后杀手锏,在单表数据规模非常非常巨大的时候才会使用。不到不得已,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的物理机器上。文件系统也是一个道理,需要使用分布式文件系统。

你可能感兴趣的:(大型网站技术架构)