一台Server就刚需—应用程序、数据库、文件等全部资源都集中在一台Server上,典型案例:基于LAMP架构的PHP网站。数据库
三台Server平天下—业务发展,单台再也不适应业务的发展,将应用和数据分离后成三台Sever(应用服务器、文件服务器与数据库服务器)。分离后三台Server对硬件资源的需求各不相同:应用服务器须要更快更强大的CPU,而数据库服务器须要更快的硬盘和更大的内存,文件服务器则须要更大的硬盘。后端
3+N的Server模式—减小数据库访问压力,提升网站的数据访问速度。缓存又能够分为:本地缓存和远程缓存(能够是分布式的),本地缓存访问速度快,但数据量有限;远程分布式缓存能够集群,所以容量不受限制。缓存
集群—解决高并发、海量数据问题的经常使用手段,实现系统的可伸缩性。经过负载均衡调度器,可将用户访问分发到集群中的某台Server上,应用服务器的负载压力再也不成为整个网站的瓶颈。安全
随着用户量的增长,数据库成为最大的瓶颈,改善数据库性能经常使用的手段是进行读写分离以及分表,读写分离顾名思义就是将数据库分为读库和写库,经过主备功能实现数据同步。分库分表则分为水平切分和垂直切分,水平切换则是对一个数据库特大的表进行拆分,例如用户表。垂直切分则是根据业务不一样来切换,如用户业务、商品业务相关的表放在不一样的数据库中。服务器
CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,而反向代理则部署在网站的中心机房。使用CDN和反向代理的目的都是尽早返回数据给用户,一方面加快用户访问速度,另外一方面也减轻后端服务器的负载压力。网络
用户一每天增长,业务量愈来愈大,产生的文件愈来愈多,单台的文件服务器已经不能知足需求。须要分布式的文件系统支撑。架构
NoSQL和搜索引擎都是源自互联网的技术手段,对可伸缩的分布式特性具备更好的支持。应用服务器则经过一个统一数据访问模块访问各类数据,减轻应用程序管理诸多数据源的麻烦。并发
随着业务进一步扩展,应用程序变得很是臃肿,这时咱们须要将应用程序进行业务拆分,如百度分为新闻、网页、图片等业务。每一个业务应用负责相对独立的业务运做。业务之间经过消息进行通讯或者同享数据库来实现。负载均衡
这时咱们发现各个业务应用都会使用到一些基本的业务服务,例如用户服务、订单服务、支付服务、安全服务,这些服务是支撑各业务应用的基本要素。咱们将这些服务抽取出来利用分部式服务框架搭建分布式服务。框架