大型网站技术架构——技术的演进

很多人会疑惑:为什么很多看起来不是很复杂的网站,比如Facebook、淘宝,都需要大量顶尖的高手来开发呢?

大型网站软件系统的特点:

  • 高并发、大流量
  • 高可用:系统24小时不间断服务,宕机事件会造成很大的影响
  • 海量数据:设计存储和管理,需要使用大量服务器
  • 用户分布广泛,网络情况复杂
  • 安全环境恶劣
  • 需求快速变更,发布频繁:产品快速适应市场,满足用户需求
  • 渐进式发展:几乎所有大型互联网都是从一个小网站开始。(FackBook、Google、阿里巴巴)

好的设计绝对不是模仿,不是生搬硬套某个模式,而是在对问题深刻理解之上的创造与创新,即使是‘微创新’,也是让人耳目一新的似曾相识。山寨与创新的最大区别不在于是否抄袭、是否模仿,而在于对问题和需求是否真正理解与把握

网站架构的演化历程

一、初期阶段

访问量特别小,一台服务器足矣

二、应用服务和数据服务分离

之后业务的发展,网站的性能越来越差,这时就需要应用和数据分离。
应用和数据分离需要使用三台服务器:应用服务器(处理大量业务逻辑,需要强大的CPU)、文件服务器(存储用户上传文件,大的硬盘)、数据库服务器(快速磁盘检索和数据缓存,需要更快的硬盘和更大的内存),网站的并发处理和数据存储得到很大改善

三、使用缓存改善网站性能

业务进一步发展,数据库压力大导致延迟,这时需要对网站架构进一步优化。使用缓存改善网站性能。80%的业务访问集中在20%的数据上,把这部分数据缓存到内存中。网站使用的缓存:本地缓存(缓存在应用服务器上)和在远程缓存(缓存在专门的分布式缓存服务器上)

四、使用应用服务器集群改善网站的并发处理能力

上面的问题解决了,紧接着单一的应用服务器能够处理的请求有限,网站访问高峰期,应用服务器成为整个网站的瓶颈。使用集群(增加服务器分担原有服务器的访问及存储压力)来解决高并发和海量数据问题,实现了系统的可伸缩性

五、数据库读写分离

虽然使用了缓存,大部分数据的读操作可以不访问数据库,但仍然有一部分读操作和全部的写操作需要访问数据库,这时用户达到一定规模,数据库因为负载压力过高成为网站瓶颈。目前大部分主流数据库都提供主从热备功能,通过配置两台数据库的主从关系,可以将一台数据库服务器的数据更新同步到另一台上。

六、使用CDN和反向代理加速网站响应

业务继续发展,不同地区的用户访问网站时,速度差别也极大。网站访问延迟和用户流失率正相关
加快网站访问速度,主要手段:CDN和反向代理(两者原理均为缓存)
区别在于:CDN部署在网络提供商的机房
反向代理部署在网站的机房。用户的请求首先到反向代理服务器,然后若缓存着用户请求的资源,就直接返回给用户。

七、分布式文件系统和分布式数据库系统

分布式数据库是网站数据库拆分的最后手段(单表数据规模放大的时候使用)。
网站常用的数据库拆分手段是业务分库(不同业务的数据库部署在不同的物理服务器上)

八、使用NoSQL和搜索引擎

九、业务拆分

大型网站为应对日益复杂的业务场景,通过分治将网站分成不同产品线(首页、商铺、订单、买家、买家等)拆分成不同的产品线,分归不同的业务团队负责。应用之间的联系,通过 超链接(导航链接指向不同应用地址)、消息队列、访问同一个数据存储系统
架构九

十、分布式服务

业务拆分越来越小,存储系统越来越大,应用系统整体复杂度呈指数级增加,部署维护越来越困难。
将共用的业务提取出来,独立部署,通过分布式服务调用共用业务服务

架构十

大型网站架构技术的核心价值是伴随小型网站业务的逐步发展,慢慢地演化成一个大型网站,漫长的技术演化过程是润物细无声的,而不需要放弃什么、推翻什么以及剧烈的革命。驱动大型网站技术发展的主要力量是网站业务的发展

转载于:https://www.cnblogs.com/fonxian/p/5608697.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值