1.初始阶段的网站架构数据库
大型网站都是由小型网站发展而来,网站架构也是同样。小型网站最开始没有多少人访问,只须要一台服务器就绰绰有余。缓存
2.应用服务和数据服务分离服务器
随着网站业务的发展,愈来愈多的用户访问致使性能愈来愈差,愈来愈多的数据致使存储空间不足。这时就须要将应用和数据分离。这时须要三台服务器:应用服务器、文件服务器和数据库服务器,以下图。这三台服务器对硬件的资源要求各不相同:应用服务器须要处理大量的业务逻辑,须要更快更强大的CPU;数据库服务器须要快速检索磁盘和缓存,所以须要更快的磁盘和更大的内存;文件服务器须要存储用户上传的文件,所以须要更大的磁盘。架构
应用和数据分离以后,不一样特性的服务器承担不一样的角色,网站的并发处理能力和数据存储空间获得了很大的改善,支持网站业务进一步发展。并发
3.使用缓存改善网站性能负载均衡
随着用户逐渐增多,网站又一次面临挑战:数据库压力太大致使访问延迟,进而影响整个网站的性能,用户体验很差,此次就须要对网站架构进一步优化。分布式
网站访问特色一样遵循二八定律:80%业务访问集中在20%的数据上。淘宝买家浏览的商品集中在少部分红交多,评价良好的商品上;百度搜索关键词集中在少部分热门词汇上;只有常常登陆的用户才会发微博、看微博,而这部分用户也是占总用户的一小部分(单证信息也是如此)。这样咱们就能够把这一小部分数据放入内存中来提升访问效率。高并发
网站用的缓存服务器能够分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。访问本地缓存要快一些,可是本地缓存受应用服务器内存限制,其缓存数据量有限,并且会出现和应用程序争内存的状况。远程分布式缓存能够采用集群方式,部署大内存的服务器做为缓存服务器,理论上能够作到不受内存的限制。性能
使用缓存能够减少数据库访问压力,提升网站的数据访问速度,改善数据库的写入性能。优化
4.使用应用服务器集群改善网站的并发处理能力
使用了缓存以后,数据访问压力获得了缓解,可是单机的应用服务器可以处理的请求链接有限,在网站访问高峰期,应用服务器就会成为整个网站的瓶颈。
使用集群是网站解决高并发、海量数据问题的经常使用手段。当一台服务器的处理能力、存储空间不足时,不要企图去更换更强大的服务器(这种方式传统行业或许能够,但并不适用于互联网行业)。这种状况下,更恰当的作法是增长一台服务器分担原有服务器的访问以及存储压力。使用了集群以后同时也须要增长一台负载均衡调度服务器来进行请求分发。
5.数据库读写分离
网站在使用缓存以后,使得绝大部分读操做均可以不经过数据库就能够完成,可是仍有小部分读操做(缓存没有命中、缓存过时)和所有的写操做都访问数据库,所以在网站的用户到达必定规模以后,数据库由于负载压力太高而成为网站的瓶颈。
可使用数据库主从的方式来改善这一问题:读操做在从库执行,写操做在主库执行而后将数据同步到从库。
为了便于应用程序访问读写分离后的数据库,一般在应用服务器端使用专门的数据访问模块,使得数据读写分离对应用透明。