大型的网站的架构演化

大型网站的特点:高并发面对高并发用户,大流量访问,淘宝2012双十一活动开始一分钟独立访问用户达到1000万。

高可用:7*24小时不断间的服务。

海量数据:需要存储 管理海量的数据 需要使用大量的服务器  facebook每周上传的照片接近10亿。

安全环境恶劣:由于互联网的开放性 使得互联网网站更容易受到攻击 大型的网站几乎每天都会被黑。

 需求快速变更 发布频繁:office产品以年为单位发布 一般大型网站以周发布 中小型网站发布就更加的频繁了 有时候一天可以发布十几次

渐进式发展:从小型的王章慢慢演化为大型网站 比如Google第一台的服务器部署在斯坦福大学的实验室里。


大型网站的发展历程:小型网站的结构:操作系统linux 应用程序使用php 数据库mysql 

随着业务的增加 越来越多的用户访问导致性能越来越差 越来越多的数据导致数据库的空间不足 这时需要应用和数据分离 

分离后需要使用三台服务器 分别是:应用服务器 文件服务器和数据库服务器

应用服务器: 需要处理大量的业务逻辑,因此需要强大的CPU

数据库服务:需要快速磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存

文件服务器:需要存储大量用户上传的文件,因此需要更大的硬盘

缓存:

缓存就是将数据放在离计算机最近的位置以加快处理的速度

使用缓存改善网站的性能:大部分的人只有一小部分的人会经常发微博 就把这一小部分的人的数据缓存在内存中,这样就减少数据库的压力了

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

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

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

使用反向代理和cdn加速网站响应
使用反向代理和cdn加速网站响应基本原理都是缓存  区别在于cdn部署在网络提供商的机房使用户在请求网站服务时可以距离自己最近的网络提供机房获取数据而反向代理则部署在网站的中心机房当用户请求到达中心机房后首先访问的服务器是反向代理服务器如果反向代理服务器中缓存着用,户的资源将就将其直接反给用户
使用cdn和反向代理的目的都是尽早返回数据给用户 一方面加快用户访问速度,另一方面也减轻后端服务器的负载压力
使用缓存的两个前提条件 :1数据访问热点不均衡,某些数据会被频繁的访问这些数据应放在缓存中,二是数据在某个时间段内有效,不过很快就会过去,否则缓存数据就会因此而失效产生脏读 影响结果的正确性

使用分布式文件系统和分布式数据库系统
分布式数据库系统是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用 不到不得已时网站更常用的数据库拆分手段是业务分裤,将不同的业务数据部署在不同的服务器上 
使用NOSQL和收索引擎 对可伸缩的分布式特性具有更好的支持  应用服务器则是通过一个统一数据访问模块访问各种数据 减轻应用程序管理诸多数据源的麻烦
业务拆分:大型购物网会将首页 商铺 订单 拆分为不同的产品线 分给不同的团队负责 将一个网站拆分为许多不同的应用 每个应用独立部署维护 应用之间可以通过一个超链接建立关系
分布式服务:业务越拆越小 存储系统越来越大 应用系统的整体复杂指数增长 部署维护越来越难  既然每一个应用系统都需要执行许多相同的业务操作 那么可以将这些共用 的业务提取出来 独立部署 由這写可复用的业务连接数据库,提供共用业务服务 而应用系统只需要管理用户界面 通过分布式调用共用业务服务完成具体业务操作
大型网站架构的演化:使用LAMP技术(LINUX+Apache+MySql+PHP)







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值