大型网站技术架构设计1.docx

PAGE 2 大型网站技术架构设计 目录 TOC \o 1-3 \h \z \u 一、 大型网站架构演化 5 1. 初始阶段的网站架构 5 2. 应用服务和数据服务分离 5 3. 使用缓存改善网站性能 6 4. 使用应用服务器集群改善网站的并发处理能力 7 5. 数据库读写分离 8 6. 使用反向代理和CDN加上网站相应 9 7. 使用分布式文件系统和分布式数据库系统 10 8. 使用NoSQL和搜索引擎 11 9. 业务拆分 12 10. 分布式服务 13 二、 大型网站架构模式 15 1. 分层 15 2. 分隔 16 3. 分布式 17 4. 集群 18 5. 缓存 18 6. 异步 19 7. 冗余 19 8. 自动化 20 9. 安全 20 三、 大型网站技术架构核心要素 21 1. 性能 21 2. 可用性 22 3. 伸缩性 23 4. 扩展性 23 5. 安全性 24 四、 大型网站的高性能架构 25 1. 性能测试指标 25 1.1 响应时间 25 1.2 并发数 26 1.3 吞吐量 26 1.4 性能计数器 27 2. 性能优化策略 27 2.1 Web前端优化 27 2.2 应用服务器性能优化 29 2.3 存储性能优化 33 大型网站架构演化 说到大型网站,就得先说大型网站的特点:高并发、大流量、高可用、海量数据等。下面就说说大型网站的架构演化过程吧。 1. 初始阶段的网站架构 ??????????? 初始阶段都比较简单,通常一台服务器就可以搞定一个网站了,看图: 2. 应用服务和数据服务分离 ??????? 随着网站业务的发展,一台服务器逐渐不能满足需求;这时候就需要将应用和数据分离,如图: 3. 使用缓存改善网站性能 ??????? 毫无疑问,现在的网站基本上都会使用缓存,即:80%的业务访问都会集中在20%的数据上。 4. 使用应用服务器集群改善网站的并发处理能力 ???????? 因为单一应用服务器能够处理的请求连接有限,在网站访问高峰时期,应用服务器会成为整个网站的瓶颈。因此使用负载均衡处理器势在必然。通过负载均衡调度服务器,可将来自浏览器的访问请求分发到应用的集群中的任何一台服务器上。 ? 5. 数据库读写分离 ???????? 当用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。而目前主流的数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上。网站利用数据库这一功能实现数据库读写分离,从而改善数据库负载压力。 6. 使用反向代理和CDN加上网站相应 ?????? 提高网站的访问速度,主要手段有使用CDN和反向代理。 ????? CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,而反向代理是部署在网站的中心机房,当用户请求到达中心机房后,首先访问的反向代理,如果反向代理缓存着用户请求的资源,则直接返回给用户。 7. 使用分布式文件系统和分布式数据库系统 ??? 任何强大的单一服务器都满足不了大型网站持续增长的业务需求。 ???? 分布式数据库时网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。不到不得已时,网站更常用的数据库拆分手段是业务拆分,将不同业务的数据部署在不同的物理服务器上。 ? 8. 使用NoSQL和搜索引擎 ?????? 搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。 ? 9. 业务拆分 ??????? 大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将真个网站业务拆分成不同的产品线。 ???????? 具体到技术上,也会根据产品线话费,将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用之间可以通过超链接建立管理,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。 10. 分布式服务 ?????? 由于每一个应用系统都需要执行许多相同的业务操作,比如用户管理,session管理,那么可以将这些公用的业务提取出来,独立部署。 大型网站架构模式 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠运行等一系列问题与挑战。为此,在实践中

文档评论(0)

1亿VIP精品文档

相关文档