`

大型网站架构模式

阅读更多

《大型网站技术架构》读书笔记:

 

网站架构模式
关于什么是模式,这个来自建筑学的词汇是这样定义的:“每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作”。模式的关键在于模式的可重复性,问题与场景的可重复性带来解决方案的可重复使用。
 


 
 
分层
分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。
 
在大型网站架构中也采用分层结构,将网站软件系统分为应用层、服务层、数据层。
应用层:负责具体业务和视图展示,如网站首页及搜索输入和结果展示   (视图层、业务逻辑层)
服务层:为应用层提供服务支持,如用户管理服务,购物车服务等   (数据接口层、逻辑处理层)
数据层:提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等
 
虽然分层架构模式最初的目的是规划软件清晰的逻辑结构便于开发维护,但在网站的发展过程中,分层结构对网站支持高并发向分布式方向发展至关重要。因此在网站规模很小的时候就应该采用分层的架构,这样将来网站做大时才能有更好地应付。
 
分割
如果说分层是将软件在横向方面进行切分,那么分割就是在纵向方面对软件进行切分。
大型网站分割的粒度可能会很小。比如在应用层,将不同业务进行分割,例如将购物、论坛、搜索、广告分割成不同的应用,由独立的团队负责,部署在不同的服务器上。
 
分布式
对于大型网站,分层和分割的一个主要目的是为了切分后的模块便于分布式部署。
 
在网站应用中,常用的分布式方案有以下几种。
分布式应用和服务
    将分层和分割后的应用和服务模块分布式部署。
分布式静态资源
    网站的静态资源如JS,CSS,Logo图片等资源独立分布式部署,并采用独立的域名,即人们常说的动静分离。
分布式数据和存储
分布式计算
还有分布式配置,分布式锁,分布式文件系统等。
 
集群
在网站应用中,即使是访问量很小的分布式应用和服务,也至少要部署两台服务器构成一个小的集群,目的就是提高系统的可用性。
 
缓存
缓存就是将数据存放在距离计算最近的位置以加快处理速度。
CDN
反向代理
本地缓存
分布式缓存
 
使用缓存有两个前提条件,一是数据访问热点不均衡,某些数据会被更频繁的访问,这些数据应该放在缓存中;二是数据在某个时间段内有效,不会很快过期。
 
异步
大型网站架构中,系统解耦合的手段除了前面提到的分层、分割、分布等,还有一个重要手段是异步。
 
异步架构是典型的生产者消费者模式,两者不存在直接调用。
使用异步消息队列有如下特性:
提高系统可扩展性
提高系统可用性
加快网站响应速度
消除并发访问高峰
 
冗余
服务集群,冗余实现服务高可用
数据库定期备份,存档保存,实现冷备份;主从分离,实时同步实现热备份
数据中心备份,全球范围内灾备数据中心
 
自动化
目前大型网站的自动化架构设计主要集中在发布运维方面。
发布对网站都是头等大事。
发布过程自动化:自动化代码管理 、自动化测试、自动化安全检测、自动化部署
 
网站在运行过程中可能会遇到各种问题:服务器宕机、程序Bug、存储空间不足、突然爆发的访问高峰。
自动化监控、自动化报警、自动化失效转移、自动化失效恢复、自动化降级、自动化分配资源
 
安全
通过密码和手机校验码进行身份认证
网络通信加密(登录、交易等)
存储敏感数据加密处理
网站验证码
常见攻击处理:XSS攻击、SQL注入
垃圾信息、敏感信息过滤
风险控制(对交易转账等重要操作)
 
小结
好的设计绝对不是模仿,不是生搬硬套某个模式,而是对问题深刻理解之上的创造与创新,即使是“微创新”,也是让人耳目一新的似曾相识。山寨与创新的最大区别不在于是否抄袭,是否模仿,而在于对问题和需求是否真正理解与把握。
 
(转载请注明来源:http://zhanjia.iteye.com/blog/2038589)
  • 大小: 15.7 KB
4
3
分享到:
评论
4 楼 zhanjia 2014-03-31  
laizhaoshi 写道
膜拜楼主的总结能力和语言能力!

这些内容都是来自书上的,是书的作者总结得好!
3 楼 jackra 2014-03-31  
可以做个方案提纲
2 楼 freezingsky 2014-03-31  
简洁明了,一步到位。总结得好!
1 楼 laizhaoshi 2014-03-31  
膜拜楼主的总结能力和语言能力!

相关推荐

    大型网站技术架构:核心原理与案例分析

    2 大型网站架构模式 3 大型网站核心架构要素 第2篇 架构 4 瞬时响应:网站的高性能架构 5 万无一失:网站的高可用架构 6 永无止境:网站的伸缩性架构 7 随需应变:网站的可扩展架构 8 固若金汤:网站的安全...

    大型网站技术架构:核心原理与案例分析PDF电子下载.txt

    大型网站架构模式 3.大型网站核心架构要素 4.网站高性能架构5.网站的高可用架构6.网站伸缩性架构7.网站的可扩展架构8.网站的安全架构9. 淘宝网的架构演化案例分析10. 维基百科的高性能架构设计分析11.海量分布式...

    大型网站架构模式PPT

    主要介绍数据读写分离、使用方向代理和CDN加速网站相应、使用分布式文件系统和数据库系统、使用NoSQL和搜索引擎、Web前端性能优化等等。注释:此PPT只是概括性内容,如有需要可以按照文档上的概述可以进一步研究!

    大型网站技术架构:核心原理与案例分析+李智慧.rar

    2. **大型网站架构模式**: - 负载均衡:通过负载均衡器分散流量,避免单点过载,提高可用性。 - 高并发处理:采用缓存、异步处理、消息队列等技术,应对高并发请求。 - 数据库优化:包括读写分离、分片、索引...

    大型网站架构资源集合

    1. **architecture.bmp**:这可能是一个图像文件,展示了各种架构模式的图形表示,包括分布式、微服务、负载均衡、缓存策略等。通过这张图,读者可以直观地理解不同组件如何协同工作以支持大规模的网站流量。 2. **...

    大型网站技术架构

    《大型网站技术架构:核心原理与案例分析》通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、...

    大型网站架构说明 一个很好的网站架构说明

    “大型网站架构系列二”将深入到更具体的架构模式和技术,例如负载均衡、分布式缓存、数据库优化、微服务架构等。负载均衡是保证网站高可用性的关键,通过分配流量来防止单点故障。分布式缓存如Redis或Memcached可以...

    大型网站技术架构:核心原理与案例分析.pdf

    《大型网站技术架构:核心原理与案例分析》通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、...

    大型网站技术路线架构演化

    #### 二、大型网站架构模式 1. **分层**: - 将系统划分为应用层、服务层和数据层等不同的层次,有助于清晰地界定各个组件之间的职责边界。 2. **分割**: - 根据业务的不同,将应用进行分割,可以更好地实现...

    大型网站技术架构PDF

    《大型网站技术架构:核心原理与案例分析》通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、...

    大型网站技术架构.rar

    本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布...

    大型分布式网站架构技术设计.docx

    以下是对大型网站特点、架构目标、架构模式、高性能、高可用、可伸缩和可扩展性等方面的详细阐述。 **大型网站的特点** 1. **用户基数大,分布广泛** - 用户数量众多,分布在不同的地理位置。 2. **大流量,高并发*...

    网站架构技术

    大型网站架构模式 架构模式 分层 分割 分布式 分布式应用和服务 分布式静态资源 分布式数据和存储 分布式计算 集群 缓存 CDN 反向代理 本地缓存 分布式缓存 异步 冗佘 冷...

    大型网站技术架构:核心原理与案例分析_李智慧.pdf

    本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布...

    [高清]大型网站技术架构 核心原理与案例分析+李智慧.pdf

    首先,书中详细讲解了网站架构的基础知识,包括软件架构的基本概念、设计原则以及常见的架构模式,如分层架构、微服务架构、分布式系统等。这些基础知识对于理解复杂的网站架构至关重要,特别是对于初学者来说,能够...

Global site tag (gtag.js) - Google Analytics