网站架构演化发展历程

  • 单服务器
    应用程序、数据库、文件等所有资源在一台服务器上。
    问题:用户增多导致服务器性能降低,数据增多导致存储空间不足
  • 应用、数据、文件服务分离
    应用服务需要更快更强的CPU;
    数据库服务器需要快速磁盘检索和数据缓存,要求磁盘存储快、内存大;
    文件服务器需要硬盘容量大;
    问题:数据库压力增加导致访问延迟;
  • 缓存服务
    二八定律,80%的访问集中在20%的数据上。将这20%的数据放在缓存服务器上,减少数据库的访问压力。
    缓存分两种:本地缓存和远程缓存。本地缓存访问速度快,但受内存限制,缓存数据有限,还会出现和应用程序争夺内存的情况。远程分布式缓存可以使用集群,解决内存限制问题。

  • 应用服务器集群
    应用服务器集群主要解决高并发、海量数据的问题。通过负载均衡调度服务将用户的请求分发到不同的应用。

  • 数据库读写分离
    虽然使用缓存可以解决一部分性能问题,但缓存访问不命中、缓存过期、数据库的写操作仍会给数据库带来压力。目前大部分主流数据库都支持主从热备功能,通过配置两台数据库的主从关系,将一台数据库数据同步到另一台上,实现数据库读写分离。
    这里写图片描述

  • 反向代理和CDN
    由于网络环境复杂,不同地区用户访问网站速度差别很大,使用反向代理和CDN可以加快网站访问速度。
    这里写图片描述

  • 分布式文件系统和分布式数据库系统
    分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用。不到不得已,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的物理服务器上。

  • NoSQL和搜索引擎
    随着业务的复杂,数据存储和检索也越来越复杂,就需要采用一些非关系数据库技术和非数据库查询技术
    这里写图片描述

  • 业务拆分
    随着业务的复杂,采用分而治之的方法将整个网站业务拆分成不同的产品线,分归不同的业务团队负责。如大型购物交易网站会将首页、商铺、订单、买家、卖家分成不同的应用,每个应用单独部署,应用之间通过超链接或者消息队列进行数据分发。
    这里写图片描述

  • 分布式服务
    随着业务拆分越来越小,应用系统整体复杂度呈指数增加,部署维护越来越困难。考虑到没一个应用系统都要执行许多相同的业务操作,比如用户管理,商品管理,那么可以把这些相同的业务提取出来,单独部署,由这些可复用的业务连接数据库,提供共用的服务。
    这里写图片描述

  • 云计算平台
    大型网站的架构演化上分布式服务,基本大多数技术问题都可以得到解决,往更大的方向发展就是云计算平台,将计算作为一种基础资源出售,中小网站不需要再关心技术架构问题,只需按需付费即可使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值