您的位置:首页 > 运维架构 > 网站架构

【网站高性能 6】----大型网站架构演化知多少(一)

2017-01-11 19:14 246 查看

架构演化知多少(一)
 

前言:

      在大型网站中的技术挑战主要是来自什么?主要是庞大的用户、高并发的访问和海量的数据,任何简单的业务一旦要处理数以P计的数据和数以亿计的用户,问题就会变的很棘手。那么大型网站的架构就是为了解决这些问题而演化出来的。

 

   万丈高楼平地起,任何的一个大型网站都是从很小发展起来:facebook是扎克伯格于哈佛大学一宿舍里诞生的;微软是家里低下库房诞生的;阿里巴巴是马云家客厅诞生的,google当初只用斯坦福大学的一台服务器。网站的架构也是一样,是从很小型网站架构逐步演化而来。其中演化过程如图:

               


1,初始阶段网站架构:

小型网站最开始没有太多人访问,只需要一台服务器就绰绰有余,这时的架构如图:

                              


 

                  


      初始阶段中,应用程序、数据库、文件等等所有的资源都在一台服务器上。通常服务器操作系统使用Linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用MySQL,汇集各种免费开源的软件及一台廉价服务器就可以开发网站的发展之路了。

2,应用程序和数据服务器分开

     为什么要程序和数据分离?

      随着网站业务发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。--------所以要将应用程序和数据分。应用程序和数据分离后整个网站使用三台服务器:应用服务器,文件服务器和数据库服务器。


 

 

      应用和数据分离之后,各个服务器承担这不同的角色,网站的并发能力和数据存储得到很大的改善,但是随着用户的逐渐增多,又会面临新的挑战:数据库压力太大导致访问延迟,进而影响整个网站的性能,用户体验收到影响,这时就要对网站架构进行进一步的优化。

3,使用缓存

   有一个有意思的现象:网站访问特点和现实世界财富分配一样遵循二八定律:80%的业务访问集中在20%的数据上。淘宝买家流利的商品集中在少部分成交数多、评价好的商品上;百度搜索关键词集中在少部分热门词汇上;只有经常登录的用户才会发微博、看微博,而这部分用户也只是占总用户的一小部分。

  既然大部分的业务访问集中在一小部分数据上,那么如果把这一小部缓存在内存中,是不是可以减少数据库的访问压力,提高整个网站数据访问速度,改善数据库写入性能了呢?

嗯,就是这个原因,我们才产生了缓存。

                      


    缓存分为两种:缓存在应用服务器上的本地缓存和缓存专门分布式服务器上的远程缓存。

本地缓存:访问速度快一些,但是受应用服务器内存的限制,缓存数据量有限,而且出现和应用程序争内存情况。

远程分布式缓存:可以使用集群方式,部署大内存的服务器作为缓存服务器,理论上是不受内存量限制的缓存服务:

 

                                            


 

  小结:

     从初级阶段的一个服务器简单架构到增加服务器,再到使用缓存,数据访问压力得到有效的环境,但是单一应用服务器能够处理的请求连接有限,在网站访问高峰期,应用服务器将成为整个网站的瓶颈,这又怎么可以怎么解决,请阅读下一篇博文:大型网站架构演化知多少(二)
 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: