首页 > Web开发 > 详细

大型网站技术架构

时间:2016-01-12 01:07:18      阅读:300      评论:0      收藏:0      [点我收藏+]

大型网站架构演化

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

    1). 高并发,大流量

    2). 高可用:7*24

    3). 海量数据

    4). 用户分布广泛,网络情况复杂

    5). 安全环境恶劣

    6). 需求快速变更,发布频繁

    7). 渐进式发展

2. 大型完整架构演化发展历程

    1). 初始阶段的网站架构

    2). 应用服务和数据服务分离:

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

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

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

    3). 使用缓存改善网站性能:二八定律,本地缓存与远程分布式缓存

    4). 使用应用服务器集群改善网站的并发处理能力

    5). 数据库读写分离

    6). 使用反向代理和CDN加速网站相应

    7). 使用分布式文件系统和分布式数据库系统

    8). 使用NoSQL和搜索引擎

    9). 业务拆分

    10). 分布式服务

3. 大型网站架构演化的价值观

    1). 大型网站架构技术的核心价值是随网站所需灵活应对

    2). 驱动大型网站技术发展的主要力量是网站的业务发展

4. 网站架构设计的误区:

    1). 一味追随大公司的解决方案

    2). 为了技术而技术

    3). 企图用技术解决所有问题:技术是用来解决业务问题的,而业务问题,也可以通过业务的手段去解决。

 

大型网站架构模式

1. 网站架构模式:

   1). 分层 : 各层可以部署在独立的服务器上

   2). 分割

   3). 分布式 : 分布式应用和服务,分布式静态资源,分布式数据和存储,分布式计算           

   4). 集群 :多台服务器部署相同的应用构成一个集群

   5). 缓存:CND,反向代理,分布式缓存

   6). 异步:提高系统可用性,加快网站相应速度,消除并发访问高峰

   7). 冗余:冷备份,热备份,灾备数据中心

   8). 自动化:发布过程自动化,自动化代码管理,自动化测试,自动化安全检测,自动化部署,自动化监控,自动化报警,自动化失效转移,自动化失效恢复,自动化降级,自动化分配资源

   9). 安全

 

大型网站核心架构要素

1. 性能

2. 可用性

3. 伸缩性

4. 扩展性

5. 安全性

 

瞬时响应:网站的高性能架构

1. 网站性能测试:

    1). 不同视角下的网站性能

         a. 用户视角的网站性能:用户计算机,网站服务器通信时间,网站服务器处理时间,用户浏览器解析时间等。

         b. 开发人员视角的网站性能:

         c. 运维人员视角的网站性能:优化主干网,利用虚拟化技术优化资源利用等

    2). 性能测试指标

         a. 响应时间

         b. 并发数:系统同时处理请求的数目

         c. 吞吐量:单位时间内系统处理的请求数量

         d. 性能技术器

    3). 性能测试方法:

         a. 性能测试

         b. 负载测试

         c. 压力测试

         d. 稳定性测试

         网站日常运行区间,系统的最大负载点,系统的崩溃点

    4). 性能测试报告

    5). 性能优化策略

         a. 性能分析

         b. 性能优化

2. Web前端性能优化

    1). 浏览器访问优化:

         a. 减少http请求

         b. 使用浏览器缓存

         c. 启用压缩

         d. CSS放在页面最上面、JavaScript放在页面最下面

         e. 减少Cookie传输

    2). CDN加速

    3). 反向代理

3. 应用服务器性能优化:

    1). 分布式缓存

         a. 缓存的基本原理:缓存指将数据存储在相对较高访问速度的存储介质中,以供系统处理。

         b. 合理使用缓存:频繁修改的数据(不适合),没有热点的访问(不适合),数据不一致与脏读(注意),缓存可用性(缓存崩溃后,数据库直面访问能否承受),缓存预热(提前将缓存数据加载出来),

                                 缓存穿透(一个简单的对应策略是敬爱给你不存在的数据也缓存起来(其值为null))

         c. 分布式缓存机构

         d. memcached : 简单的通信协议,丰富的客户单程序,高性能的网络通信,高效的内存管理,互不通信的服务器集群架构

    2). 异步操作

    3). 使用集群

    4). 代码优化:

         a. 多线程:将对象设计成无状态对象,使用局部变量,并发访问资源时使用锁

         b. 资源复用:主要有两种模式:单例和对象池

         c. 数据结构:hash等

         d. 垃圾回收

4. 存储性能优化:

    1). 机械硬盘  VS  固态硬盘

    2). B+树  VS LSM树

    3). RAID  VS HDFS

 

大型网站技术架构

原文:http://www.cnblogs.com/Jtianlin/p/5123018.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!