探析大Web体系结构演进历程
发布时间:2023-11-01 11:02:45 所属栏目:经验 来源:
导读: 一个成熟的大型网站的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很
一个成熟的大型网站的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随着业务的扩展而逐步完善的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的商品信息的搜索、下单、支付,例如腾讯,要解决数亿用户的实时消息传输,百度它要处理海量的搜索请求,他们都有各自的业务特性,系统架构也有所不同。尽管存在差异,但这些不同站点的案例分析可以让我们识别出那些适用于大型网站系统构建的技术和工具,接下来我们将通过对大网站体系的演变历程进行阐述,以了解更多此类技术和工具。 一、应用、数据、文件分离 随着业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数据库、文件各自部署在独立的服务器上,并且根据客户端和服务器的用途可以配置一系列不同的硬件,从而达到最佳的性能最大化的效果。 二、利用缓存改善网站性能 在硬件优化性能的同时,同时也通过软件进行性能优化,在大部分的网站系统中,都会利用缓存技术改善系统的性能,使用缓存主要源于热点数据的存在,大部分网站访问都遵循28原则,所以我们可以对热点数据进行缓存,减少这些数据的访问路径,提高用户体验。 三、数据库读写分离和分库分表 随着用户量的增加,数据库成为最大的瓶颈,改善数据库性能常用的手段是进行读写分离以及分库分表,读写分离顾名思义就是将数据库分为读库和写库,通过主备功能实现数据同步。分库分表则分为水平切分和垂直切分,垂平切分则是对一个数据库特大的表进行拆分,例如用户表。垂直业务流程的切分则是根据垂直行业的业务的不同特性来切分,如用户业务、不同渠道的商品业务等相关的业务流程表放在垂直行业不同的数据库中。 四、使用分布式文件系统 用户一天天增加,业务量越来越大,产生的文件越来越多,单台的文件服务器已经不能满足需求,这时就需要分布式文件系统的支撑。广受使用的分散式文件体系结构包括GFS、HDFS与TFS。 五、将应用服务器进行业务拆分 随着业务进一步扩展,应用程序变得非常臃肿,这时我们需要将应用程序进行业务拆分,如百度分为新闻、网页、图片等业务。每个业务应用负责相对独立的业务运作。数据库业务之间通过消息协议进行数据的通信或者共享同一个数据库服务器来实现。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐