- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大型网站系统架构演化之路
前言
一个成熟的大型网站(如淘宝、天猫、腾讯等)的系统架构并不是一开始设计时就
具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业务功能的
扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大
的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统
架构是随着业务的扩展而逐步完善的,并不是一蹴而就;不同业务特征的系统,会有各
自的侧重点,例如淘宝,要解决海量的商品信息的搜索、下单、支付,例如腾讯,要
解决数亿用户的实时消息传输,百度它要处理海量的搜索请求,他们都有各自的业务
特性,系统架构也有所不同。尽管如此我们也可以从这些不同的网站背景下,找出其
中共用的技术,这些技术和手段广泛运用在大型网站系统的架构中,下面就通过介绍
大型网站系统的演化过程,来认识这些技术和手段。
一、最开始的网站架构
最初的架构,应用程序、数据库、文件都部署在一台服务器上,如图:
二、应用、数据、文件分离
随着业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数据库、
文件各自部署在独立的服务器上,并且根据服务器的用途配置不同的硬件,达到最佳
的性能效果。
三、利用缓存改善网站性能
在硬件优化性能的同时,同时也通过软件进行性能优化,在大部分的网站系统
中,都会利用缓存技术改善系统的性能,使用缓存主要源于热点数据的存在,大部分
网站访问都遵循28 原则(即80%的访问请求,最终落在20%的数据上),所以我们可以
对热点数据进行缓存,减少这些数据的访问路径,提高用户体验。
缓存实现常见的方式是本地缓存、分布式缓存。当然还有CDN、反向代理等,这
个后面再讲。本地缓存,顾名思义是将数据缓存在应用服务器本地,可以存在内存
中,也可以存在文件,OSCache 就是常用的本地缓存组件。本地缓存的特点是速度
快,但因为本地空间有限所以缓存数据量也有限。分布式缓存的特点是,可以缓存海
量的数据,并且扩展非常容易,在门户类网站中常常被使用,速度按理没有本地缓存
快,常用的分布式缓存是Memcached、Redis。
四、使用集群改善应用服务器性能
应用服务器作为网站的入口,会承担大量的请求,我们往往通过应用服务器集群
来分担请求数。应用服务器前面部署负载均衡服务器调度用户请求,根据分发策略将
请求分发到多个应用服务器节点。
常用的负载均衡技术硬件的有F5,价格比较贵,软件的有LVS、Nginx、
HAProxy。LVS 是四层负载均衡,根据目标地址和端口选择内部服务器,Nginx 和
HAProxy 是七层负载均衡,可以根据报文内容选择内部服务器,因此LVS 分发路径优
于Nginx 和HAProxy,性能要高些,而Nginx 和HAProxy 则更具配置性,如可以用来
做动静分离(根据请求报文特征,选择静态资源服务器还是应用服务器)。
五、数据库读写分离和分库分表
随着用户量的增加,数据库成为最大的瓶颈,改善数据库性能常用的手段是进行
读写分离以及分库分表,读写分离顾名思义就是将数据库分为读库和写库,通过主备
功能实现数据同步。分库分表则分为水平切分和垂直切分,水平切分则是对一个数据
库特大的表进行拆分,例如用户表。垂直切分则是根据业务的不同来切分,如用户业
务、商品业务相关的表放在不同的数据库中。
六、使用CDN 和反向代理提高网站性能
假如我们的服务器都部署在成都的机房,对于四川的用户来说访问是较快的,而
对于北京的用户访问是较慢的,这是由于四川和北京分别属于电信和联通的不同发达
地区,北京用户访问需要通过互联路由器经过较长的路径才能访问到成都的服务器,
返回路径也一样,所以数据传输时间比较长。对于这种情况,常常使用CDN 解决,CDN
将数据内容缓存到运营商的机房,用户访问时先从最近的运营商获取数据,这样大大
减少了网络访问的路径。比较专业的CDN 运营商有蓝汛、网宿。
而反向代理,则是部署在网站的机房,当用户请求达到时首先访问反向代理服务
器,反向代理服务器将缓存的数据返回给用户,如果没有缓存数据才会继续访问应用
服务器获取,这样做减少了获取数据的成本。反向代理有Squid,Nginx。
七、使用分布式文件系统
用户一天天增加,业务量越来越大,产生的文件越来越多,单台的文件服务器已
经不能满足需求,这时就需要分布式文件系统的支撑。常用的分布式文件系统有
GFS、HDFS、TFS。
您可能关注的文档
- 第六章作业和思考题答案.doc
- VB篇篇练习题.doc
- JSF框架及Hibernate技术集成的研究.pdf
- 导函数连续性定理与其推论.pdf
- 常用贴片钽电容封封装及规格及参数资料.docx
- 第六篇_一次函数测试题B.doc
- VaR数学模型与其计算方法_刘红波.pdf
- 第六篇 银行顾问服务-理财顾问服务特点.pdf
- 第九章 贷款审批-信贷授权的原则和方法.pdf
- 第7篇 SWT技术.ppt
- Unit4HistoryandTraditionsReadingandThinking知识点课件高中英语人教版(2019)必修第二册.pptx
- Unit2Lessonsinlife教材习题课件高二英语外研版(2019)选择性必修第四册.pptx
- Unit2BridgingCulturesReadingforWriting如何写议论文课件高中英语人教版(2019)选择性必修第二册 (1).pptx
- Unit4AgoodreadComicstrip&Welcometotheuni课件牛津译林版八年级英语下册.pptx
- Unit9HumanBiology-WritingWorkshop课件高中英语北师大版(2019)选择性必修第三册.pptx
- Unit5OntheRoadUnderstandingideas课件高中英语外研版(2019)必修第二册.pptx
- Unit8OurBluePlanetPreparingfortheTopicListening&Speaking(教学课件)仁爱科普版(2024)英语七年级下册.pptx
- 应用文活动报道亮点句课件-2025届高三英语二轮复习.pptx
- Unit4SharingReadingforWriting课件高二英语人教版(2019)选择性必修第四册.pptx
- Unit4SpaceExplorationReadingforWriting课件高中英语人教版必修第三册.pptx
文档评论(0)