大型网站技术架构笔录(1):演化

来源:互联网 发布:红苹果预算软件 编辑:程序博客网 时间:2024/04/30 11:50

一)大型网站软件系统特点:
1)高并发、大流量:想想每年双十一
2)高可用:7*24小时不间断服务
3)海量数据:存储管理海量数据
4)用户分布广泛,网络情况复杂
5)安全环境恶劣:黑客,黑客,黑客
6)需求快速变更,发布频繁:快速适应市场,满足用户需求
7)渐进式发展:大型网站都是从小网站开始的

二)大型网站架构演化过程
1)初始阶段网站架构:应用程序、数据库、文件等所有资源都集中在一台服务器,LAMP架构。
瓶颈:各种压力大,不说了。

2)将应用和数据库从物理上分离,变成了3台机器。
应用服务器(CPU强),数据库服务器(快速存储与查询,大快硬盘),文件服务器(存储用户上传文件,大硬盘)
瓶颈:数据库压力大,导致访问延时。

3)增加缓存,采用缓存机制来减少数据库连接资源的竞争和对数据库读的压力,二八定律。
缓存分为:本地缓存和远程缓存(可以是分布式的),本地缓存访问速度快,但数据量有限;远程分布式缓存可以集群,因此容量不受限制

   

4)服务器集群,改善并发处理能力
增加服务器,系统可伸缩性。负载平衡调度,分发用户访问请求。

5)数据库读写分离
缓存解决不了全部问题,还是要访问数据库的,不够用。
主从热备功能,一主几从,同步更新。
写数据,访问主数据库,再同步更新到从数据库,读时就可以从从数据库获得数据。
读写分离对应用透明。

6)反向代理、CDN加快响应
基本原理都是缓存,CDN使用户就近的网络服务商访问,反向代理器部署在中心机房,用户请求先访问反向代理器,如有缓存资源直接返回给用户。
CDN和反向代理加快了响应速度,减轻了后端服务器压力。

7)分布式文件系统、分布式数据库系统
单机系统是注定满足不了持续增长的需求的,所以分布式,分布式

   

8)NoSQL和搜索引擎
NoSQL和搜索引擎都是源自互联网的技术手段,对可伸缩的分布式特性具有更好的支持。应用服务器则通过一个统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

9)业务拆分
网络业务拆分成不同的产品线和应用,比如购物系统分为首页、商铺、卖家、订单等业务,通过消息系统进行数据分发,通过数据存储系统构成完整关联系统。

10)分布式服务
业务越拆越多,提取公用业务,独立部署。用户系统仅维护页面,通过分布式服务调用共有服务完成具体业务。

   

驱动大型网站技术发展的是业务需求,没有需求就没有生产力的说。

   

参考:
http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html
http://www.cio.com.cn/eyan/17172.html
http://www.cnblogs.com/edisonchou/p/3773891.html
https://blog.linuxeye.com/401.html

0 0
原创粉丝点击