大型网站架构设计与分析案例汇总PPT(共44页)
- 格式:ppt
- 大小:359.00 KB
- 文档页数:44
大型网站架构方案分析与总结大型网站架构只包含高互动性高交互性的数据型大型网站,基于大家众所周知的原因,我们就不谈新闻类与一些依靠HTML静态化就能够实现的架构了,我们以高负载高数据交换高数据流淌性的网站为例,比如海内,开心网等类似的web2.0系列架构。
我们这里不讨论是PHP还是JSP或者者.NET环境,我们从架构的方面去看问题,实现语言方面并不是问题,语言的优势在于实现而不是好坏,不论你选择任何语言,架构都是务必要面对的。
这里讨论一下大型网站需要注意与考虑的问题。
1、海量数据的处理众所周知,关于一些相对小的站点来说,数据量并不是很大,select与update就能够解决我们面对的问题,本身负载量不是很大,最多再加几个索引就能够搞定。
关于大型网站,每天的数据量可能就上百万,假如一个设计不好的多对多关系,在前期是没有任何问题的,但是随着用户的增长,数据量会是几何级的增长的。
在这个时候我们关于一个表的select与update的时候(还不说多表联合查询)的成本的非常高的。
2、数据并发的处理在一些时候,2.0的CTO都有个尚方宝剑,就是缓存。
关于缓存,在高并发高处理的时候也是个大问题。
在整个应用程序下,缓存是全局共享的,然而在我们进行修改的时候就,假如两个或者者多个请求同时对缓存有更新的要求的情况下,应用程序会直接的死掉。
这个时候,就需要一个好的数据并发处理策略与缓存策略。
另外,就是数据库的死锁问题,也许平常我们感受不到,死锁在高并发的情况下的出现的概率是非常高的,磁盘缓存就是一个大问题。
3、文件存贮的问题关于一些支持文件上传的2.0的站点,在庆幸硬盘容量越来越大的时候我们更多的应该考虑的是文件应该如何被存储同时被有效的索引。
常见的方案是对文件按照日期与类型进行存贮。
但是当文件量是海量的数据的情况下,假如一块硬盘存贮了500个G的琐碎文件,那么保护的时候与使用的时候磁盘的Io就是一个巨大的问题,哪怕你的带宽足够,但是你的磁盘也未必响应过来。
大型电商网站架构设计从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型。
除具备功能需求外,还具备一定的高性能,高可用,可伸缩,可扩展等非功能质量需求(架构目标)。
根据实际需要,进行改造,扩展,支持千万PV,是没问题的。
1.电商案例的原因2.电商网站需求3.网站初级架构4.系统容量估算5.网站架构分析6.网站架构优化7.架构总结电商网站案例,一共有三篇本篇主要说明网站的需求,网站初始架构,系统容量估算方法。
分布式大型网站,目前看主要有几类1.大型门户,比如网易,新浪等;2.SNS网站,比如校内,开心网等;3.电商网站:比如阿里巴巴,京东商城,国美在线,汽车之家等。
大型门户一般是新闻类信息,可以使用CDN,静态化等方式优化,开心网等交互性比较多,可能会引入更多的NOSQL,分布式缓存,使用高性能的通信框架等。
电商网站具备以上两类的特点,比如产品详情可以采用CDN,静态化,交互性高的需要采用NOSQL等技术。
因此,我们采用电商网站作为案例,进行分析。
客户需求:•建立一个全品类的电子商务网站(B2C),用户可以在线购买商品,可以在线支付,也可以货到付款;•用户购买时可以在线与客服沟通;•用户收到商品后,可以给商品打分,评价;•目前有成熟的进销存系统;需要与网站对接;•希望能够支持3~5年,业务的发展;•预计3~5年用户数达到1000万;•定期举办双11,双12,三八男人节等活动;•其他的功能参考京东或国美在线等网站。
客户就是客户,不会告诉你具体要什么,只会告诉你他想要什么,我们很多时候要引导,挖掘客户的需求。
好在提供了明确的参考网站。
因此,下一步要进行大量的分析,结合行业,以及参考网站,给客户提供方案。
需求功能矩阵需求管理传统的做法,会使用用例图或模块图(需求列表)进行需求的描述。
这样做常常忽视掉一个很重要的需求(非功能需求),因此推荐大家使用需求功能矩阵,进行需求描述。
本电商网站的需求矩阵如下:以上是对电商网站需求的简单举例,目的是说明(1)需求分析的时候,要全面,大型分布式系统重点考虑非功能需求;(2)描述一个简单的电商需求场景,使大家对下一步的分析设计有个依据。
大型网站技术架构核心原理与案例分析pdf【篇一:大型网站技术架构核心原理与案例分析pdf】1.3.1 大型网站架构技术的核心价值是随网站所需灵活应对 131.3.2 驱动大型网站技术发展的主要力量是网站的业务发展 131.4 网站架构设计误区 141.4.1 一味追随大公司的解决方案 141.4.2 为了技术而技术 141.4.3 企图用技术解决所有问题 141.5 小结 152 大型网站架构模式 162.1 网站架构模式 162.1.1 分层 172.1.2 分割 182.1.3 分布式 182.1.4 集群 192.1.5 缓存 202.1.6 异步 202.1.7 冗余 212.1.8 自动化222.1.9 安全 232.2 架构模式在新浪微博的应用 232.3 小结 253 大型网站核心架构要素 263.1 性能273.2 可用性 283.3 伸缩性 293.4 扩展性 303.5 安全性 303.6 小结 31第2篇架构4 瞬时响应:网站的高性能架构 344.1 网站性能测试 354.1.1 不同视角下的网站性能 354.1.2 性能测试指标 364.1.3 性能测试方法 394.1.4 性能测试报告 414.1.5 性能优化策略 414.2 web前端性能优化 424.2.1 浏览器访问优化424.2.2 cdn加速 434.2.3 反向代理 444.3 应用服务器性能优化 454.3.1 分布式缓存 454.3.2 异步操作524.3.3 使用集群 534.3.4 代码优化 544.4 存储性能优化 584.4.1 机械硬盘vs. 固态硬盘 584.4.2 b+树vs. lsm树 594.4.3 raid vs. hdfs 614.5 小结 645 万无一失:网站的高可用架构 665.1 网站可用性的度量与考核 675.1.1 网站可用性度量 675.1.2 网站可用性考核 675.2 高可用的网站架构 695.3 高可用的应用715.3.1 通过负载均衡进行无状态服务的失效转移 725.3.2 应用服务器集群的session管理 735.4 高可用的服务 765.5 高可用的数据 785.5.1 cap原理 795.5.2 数据备份 825.5.3 失效转移 845.6 高可用网站的软件质量保证 855.6.1 网站发布 855.6.2 自动化测试 865.6.3 预发布验证 875.6.4 代码控制 885.6.5 自动化发布 905.6.6 灰度发布 915.7 网站运行监控 915.7.1 监控数据采集 925.7.2 监控管理 935.8 小结946 永无止境:网站的伸缩性架构 956.1 网站架构的伸缩性设计 976.1.1 不同功能进行物理分离实现伸缩 976.1.2 单一功能通过集群规模实现伸缩 986.2 应用服务器集群的伸缩性设计 996.2.1 http重定向负载均衡 1006.2.2 dns域名解析负载均衡 1016.2.3 反向代理负载均衡 1026.2.4 ip负载均衡 1036.2.5 数据链路层负载均衡 1046.2.6 负载均衡算法 1056.3 分布式缓存集群的伸缩性设计 1066.3.1 memcached 分布式缓存集群的访问模型 1076.3.2 memcached分布式缓存集群的伸缩性挑战 1076.3.3 分布式缓存的一致性hash算法 1096.4 数据存储服务器集群的伸缩性设计 1126.4.1 关系数据库集群的伸缩性设计1136.4.2 nosql数据库的伸缩性设计 1176.5 小结 1197 随需应变:网站的可扩展架构 1217.1 构建可扩展的网站架构 1227.2 利用分布式消息队列降低系统耦合性 1237.2.1 事件驱动架构 1237.2.2 分布式消息队列 1247.3 利用分布式服务打造可复用的业务平台 1267.3.1 web service与企业级分布式服务1287.3.2 大型网站分布式服务的需求与特点 1297.3.3 分布式服务框架设计 1307.4 可扩展的数据结构1317.5 利用开放平台建设网站生态圈 1327.6 小结 1348 固若金汤:网站的安全架构 1358.1 道高一尺魔高一丈的网站应用攻击与防御 1368.1.1 xss攻击 1368.1.2 注入攻击 1388.1.3 csrf攻击 1398.1.4 其他攻击和漏洞 1408.1.5 web应用防火墙 1418.1.6 网站安全漏洞扫描 1428.2 信息加密技术及密钥安全管理 1428.2.1 单向散列加密 1438.2.2 对称加密 1448.2.3 非对称加密 1448.2.4 密钥安全管理 1458.3 信息过滤与反垃圾 1468.3.1 文本匹配 1478.3.2 分类算法 1488.3.3 黑名单 1498.4 电子商务风险控制1508.4.1 风险 1518.4.2 风控 1518.5 小结 153第3篇案例9 淘宝网的架构演化案例分析 1569.1 淘宝网的业务发展历程 1579.2 淘宝网技术架构演化 1589.3 小结 16210 维基百科的高性能架构设计分析16310.1 wikipedia网站整体架构 16310.2 wikipedia性能优化策略 16510.2.1 wikipedia前端性能优化16510.2.2 wikipedia服务端性能优化 16610.2.3 wikipedia后端性能优化 16711 海量分布式存储系统doris的高可用架构设计分析 16911.1 分布式存储系统的高可用架构 17011.2 不同故障情况下的高可用解决方案 17111.2.1 分布式存储系统的故障分类 17211.2.2 正常情况下系统访问结构 17211.2.3 瞬时故障的高可用解决方案 17311.2.4 临时故障的高可用解决方案 17411.2.5 永久故障的高可用解决方案17512 网购秒杀系统架构设计案例分析 17612.1 秒杀活动的技术挑战 17712.2 秒杀系统的应对策略17712.3 秒杀系统架构设计 17812.4 小结 18213 大型网站典型故障案例分析 18313.1 写日志也会引发故障 18413.2 高并发访问数据库引发的故障 18413.3 高并发情况下锁引发的故障 18513.4 缓存引发的故障 18513.5 应用启动不同步引发的故障 18613.6 大文件读写独占磁盘引发的故障 18613.7 滥用生产环境引发的故障 18713.8 不规范的流程引发的故障 18713.9 不好的编程习惯引发的故障 18813.10 小结188第4篇架构师14 架构师领导艺术 19014.1 关注人而不是产品 19114.2 发掘人的优秀 19114.3 共享美好蓝图 19214.4 共同参与架构 19314.5 学会妥协 19414.6 成就他人 19415 网站架构师职场攻略19615.1 发现问题,寻找突破 19715.2 提出问题,寻求支持 19915.3 解决问题,达成绩效 20116 漫话网站架构师 20316.1 按作用划分架构师 20316.2 按效果划分架构师 20416.3 按职责角色划分架构师20516.4 按关注层次划分架构师 20516.5 按口碑划分架构师 20616.6 非主流方式划分架构师 207附录a 大型网站架构技术一览 208附录b web开发技术发展历程 215...展开收缩【篇二:大型网站技术架构核心原理与案例分析pdf】大型网站技术架构:核心原理与案例分析通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、web 安全、系统发布、运维监控等在内的大型网站开发全景视图。