大型网站技术架构-核心原理与案例分析by方阳ppt课件_第1页
大型网站技术架构-核心原理与案例分析by方阳ppt课件_第2页
大型网站技术架构-核心原理与案例分析by方阳ppt课件_第3页
大型网站技术架构-核心原理与案例分析by方阳ppt课件_第4页
大型网站技术架构-核心原理与案例分析by方阳ppt课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大型网站技术架构 中心原理与案例分析INFORMATION SHARE方阳方阳 2019.02 2019.02金融中心研发信息技术中心金融中心研发信息技术中心BREAD PPT DESIGN目录 网站的演化1 1 大型网站的架构方式2 2 中心要素分析3 3CONTENTSBREAD PPT DESIGN什么样的网站才算是大型网站?什么样的网站才算是大型网站? 高并发,大流量 高可用 海量的数据 用户分布广泛,网络情况复杂 平安环境恶劣 需求快速变卦,发布频繁 渐进式的开展 网站的演化1 1BREAD PPT DESIGN大型网站都是由小型网站开展而来,架构也是如此大型网站都是由小型网站开展而

2、来,架构也是如此 初始阶段的网站,一台效力器包含运用、数据库等 运用与数据分别 运用缓存改善性能 运用效力器集群改善网站的并发处置才干 数据库读写分别 运用反向代理和CDN加速网站相应 运用分布式文件系统和分布式数据库系统 运用NoSQL和搜索引擎 业务拆分 分布式效力 网站的演化1 1BREAD PPT DESIGN网站架构的演化 网站的演化1 1BREAD PPT DESIGN大型网站的价值观 大型网站架构技术的价值观是随网站所需灵敏应对 驱动大型网站技术开展的主要力量是网站的业务开展 网站技术是为了业务而存在的,脱离业务开展的实践,能够会将技术开展引入小道 技术是用来处理业务问题的,而业

3、务问题,也可以经过业务的手段处理BREAD PPT DESIGN网站架构 架构是什么? 最高层次的规划,难以改动的决议。这些规划和决议奠定了事务未来开展的方向和最终的蓝图 软件架构是什么? 有管软件整体结果与组件的笼统描画,用于知道大型软件系统各个方面的设计BREAD PPT DESIGN大型网站的架构方式架构模式分层分割分布式集群缓存异步冗余自动化安全BREAD PPT DESIGN 分层 将系统横向维度上切分成几个部分,每个部分担任比较单一的职责,经过上层对下层的依赖和调用组成一个完好的系统 制止跨层次的调用和逆向调用 大型网站的架构方式2 2BREAD PPT DESIGN 分割 假设说

4、分层是将软件在横向方面进展切分,那么分隔就是在纵向方面对软件进展切分 大型网站分隔的粒度能够会很小。比如在运用层,将不同业务进展分隔,例如将购物、论坛、搜索、广告分隔成不同的运用,有对立的团队担任,部署在不同的效力器上 大型网站的架构方式2 2BREAD PPT DESIGN 分布式 分布式是指将不同的业务分布在不同的地方 分布式运用和效力,把运用和效力模块分布式部署 分布式静态资源:把JS,CSS,JPG图片等资源独立分布式部署,并采用独立的域名 分布式数据和存储:大型网站的海量数据,单台计算机无法提供空间时,需求分布式部署 分布式计算:运用、效力、数据处置都是计算,这些计算量非常庞大,目前

5、很多网站采用hadoop及其MapRedcuce分布式计算框架 大型网站的架构方式2 2BREAD PPT DESIGN 集群 集群是指将多台效力器集中在一同,实现同一业务 对于用户访问集中的模块需求将独立部署的效力器集群化,即多台效力器部署一样的运用构成一个集群,经过负载平衡设备共同对外提供效力 效力器集群可以为一样的效力提供更多的并发支持,因此当有更多的用户访问时,只需求向集群中参与新的机器即可;另外可以实现当其中的某台效力器发生缺点时,可以经过负载平衡的失效转移机制将恳求转移至集群中其他的效力器上,因此可以提高系统的可用性 大型网站的架构方式2 2BREAD PPT DESIGN 缓存

6、缓存目的就是减轻效力器的计算,使数据直接前往给用户。在如今的软件设计中,缓存曾经无处不在。详细实现有CDN、反向代理、本地缓存、分布式缓存等 运用缓存有两个条件:访问数据热点不平衡,即某些频繁访问的数据需求放在缓存中;数据在某个时间段内有效,不过很快过期,否那么会由于数据过期而脏读,影响数据的正确性 缓存除了可以加快数据的访问速度,还可以减轻后端运用和数据存储的负载压力 大型网站的架构方式2 2BREAD PPT DESIGN 异步 运用异步,业务之间的音讯传送不是同步伐用,而是将一个业务操作分成多个阶段,每个阶段之间经过共享数据的方法异步执行进展协作 异步伐用可以提高系统的可用性,加快网站的

7、呼应速度,消除并发访问顶峰。但是能够会对用户体验及业务流程呵斥影响 大型网站的架构方式2 2BREAD PPT DESIGN 冗余 网站需求724小时延续运转,那么就得有相应的冗余机制,以防某台机器宕掉时无法访问,而冗余那么可以经过部署至少两台效力器构成一个集群实现效力高可用。数据库除了定期备份还需求实现冷热备份。甚至可以在全球范围内部署灾备数据中心 大型网站的架构方式2 2BREAD PPT DESIGN 自动化 详细有自动化发布过程,自动化代码管理、自动化测试、自动化平安检测、自动化部署、自动化监控、自动化报警、自动化失效转移、自动化失效恢复等 大型网站的架构方式2 2BREAD PPT

8、DESIGN 平安 身份验证、加密、防火墙等 大型网站的架构方式2 2BREAD PPT DESIGN 中心要素3 3二三四可用性可用性伸缩性伸缩性扩展性扩展性五平安性平安性高性能高性能一BREAD PPT DESIGN 用户眼中的网站性能 高性能3 3BREAD PPT DESIGN 开发眼中的网站性能 开发人员关注的是运用程序本身和相关子系统的性能,包括呼应延迟、系统吞吐量、并发处置才干、系统稳定性等。 主要优化手段有:运用缓存加速数据读取,运用集群提高吞吐才干,运用异步音讯加快恳求相应,运用代码优化改善性能 高性能3 3BREAD PPT DESIGN 运维眼中的网站性能 运维人员关注的

9、根底设备性能和资源利用率,比如效力器硬件,数据中心网络,网络运营商 主要优化手段有:建立优化骨干网,运用高性价比的效力器等 高性能3 3BREAD PPT DESIGN 判别一个网站性能好不好有哪些目的 呼应时间,从发出恳求到收到数据所需求的时间 并发数,系统能同时处置恳求的数目 吞吐量,单位时间内,系统能处置的恳求数量 性能计数器,一些数据目的,包括对象与线程数,内存运用,CPU运用等 高性能3 3BREAD PPT DESIGN 高性能3 3 性能测试方法 性能测试 负载测试 压力测试 稳定性测试BREAD PPT DESIGN 高性能3 3 WEB前端性能优化1 运用效力器性能优化2 存

10、储性能优化3BREAD PPT DESIGN 高性能3 3 Web前端优化 阅读器端优化 减少 恳求,合并CSS,JS,图片等 运用阅读器缓存,静态资源可以缓存在阅读器中 启用紧缩,对文件紧缩,减少传输的数据量,阅读器端解压,这对效力器和阅读器端都有压力 CSS放在页面最上,js放在页面最下面 减少Cookie传输BREAD PPT DESIGN 高性能3 3 Web前端优化 CDN加速 CDN本质就是缓存,而且将数据缓存在离用户最近的地方。CDN就部署在网络营运商的机房中 反向代理 传统代理效力器位于阅读器一侧,而反向代理效力器位于网站机房一侧。反向代理效力器经过配置缓存功能,加速网站呼应

11、另外,反向代理具有维护网站平安的作用,一切恳求都须经过反代效力器。反代还可以实现负载平衡BREAD PPT DESIGN 高性能3 3 反向代理BREAD PPT DESIGN 高性能3 3 运用效力器性能优化 分布式缓存 分布式缓存架构有两种,一种以Jboss 为代表需求更新同步的分布式缓存,一种一Memcached为代表的不相互通讯的分布式缓存 异步操作 运用集群 存储性能优化硬件 高性能的代码 多线程,需求留意线程平安问题 资源复用 数据构造 渣滓回收BREAD PPT DESIGN 高可用性3 3 高可用的运用1 高可用的效力2 高可用的数据3 软件质量保证4 网站运转监控5BREAD

12、 PPT DESIGN 高可用3 3 高可用的网站 可用性度量 网站年度不可用时间=1-网站不可用时间/年度时间 100% 可用性考核BREAD PPT DESIGN 高可用3 3运用层、效力层、数据层的划分粒度会很小很详细,构造复杂、效力器规模庞大。通常情况下,不同的业务产品会部署在不同的效力器集群上,互不干扰BREAD PPT DESIGN 高可用3 3 高可用的运用 经过负载平衡进展无形状的失效转移 Session管理 早期网站运用session复制,在集群中同步 Session绑定在某台效力器上,但是一旦宕机,session就不存在 利用cookie记录session,保管在客户端上,

13、但是受限于cookie的大小和用户能否开启cookie Session效力器,部署独立的session效力器集群,每次读写都访问session效力器BREAD PPT DESIGN 高可用3 3 高可用的效力 分级管理 中心运用和效力优先的运用更好的硬件,其他次之 超时设置 效力调用时间设置超时时间 异步伐用 经过音讯队列方式完成 效力降级 网站访问顶峰期,可对非重要效力降级:回绝效力和封锁效力 幂等性设计BREAD PPT DESIGN 高可用3 3 高可用的数据 CAP原理 数据耐久性 Partition Tolerance 数据可访问性 Availibility 数据一致性 Consis

14、tency 数据强一致,数据更新结果和操作呼应总是一致的 数据用户一致,数据在存储中能够是不一致的,但是用户访问时,经过就错和校验,可以确定一个不断的数据给用户 数据最终一致,物理存储的数据能够是不一致的,用户访问时也能够是不一致的,但是经过一段时间后,数据最终会到达一致。BREAD PPT DESIGN 高可用3 3BREAD PPT DESIGN 高可用3 3 高可用的数据 数据备份 失效转移BREAD PPT DESIGN 高可用3 3 运转监控 监控数据采集 用户行为日志搜集 效力器性能监控 运转数据报告 监控管理 系统报警 失效转移 自动优雅降级BREAD PPT DESIGN不同功

15、能物理分别不同功能物理分别 纵向分别 横向分别 高伸缩性3 3BREAD PPT DESIGN单一功能经过集群实现伸缩单一功能经过集群实现伸缩 高伸缩性3 3BREAD PPT DESIGN 高伸缩性3 3 HTTP重定向负载平衡 DNS域名解析负载平衡 反向代理负载平衡 IP负载平衡 数据链路层负载平衡 负载平衡算法简介集群的伸缩性设计:BREAD PPT DESIGN 重定向负载平衡BREAD PPT DESIGNDNS域名解析负载平衡BREAD PPT DESIGN反向代理负载平衡BREAD PPT DESIGNIP负载平衡BREAD PPT DESIGN数据链路层负载平衡BREAD P

16、PT DESIGN 高伸缩性3 3数据存储效力器集群的伸缩性设计 关系数据库集群的伸缩性设计 NoSQL数据库的伸缩性设计BREAD PPT DESIGN 高可扩展性3 3 分布式音讯队列降低系统耦合性1 分布式效力2 可扩展的数据构造3 开放平台4BREAD PPT DESIGN 高扩展性3 3分布式音讯队列 事件驱动架构 经过在低耦合的模块之间传输事件音讯,以坚持模块的松散耦合,并借助事件音讯的通讯完成模块间协作,典型的架构就是消费者消费者方式。在大型网站架构中,详细实现手段很多,最常用的就是分布式音讯队列BREAD PPT DESIGN 高扩展性3 3BREAD PPT DESIGN 高

17、扩展性3 3目前开源的和商业的分布式音讯队列产品有很多,比较著名的有Apache ActiveMQ等,如下是分布式音讯队列的架构原理BREAD PPT DESIGN 高扩展性3 3巨无霸系统面临的费事 编译部署困难 代码分支管理困难 数据库衔接耗尽 新增业务困难BREAD PPT DESIGN 高扩展性3 3利用分布式效力打造可复用的业务平台利用分布式效力打造可复用的业务平台 负载平衡 失效转移 高效的远程通讯 整合异构系统 对运用最少侵入 版本管理 实时监控BREAD PPT DESIGN 高扩展性3 3目前国内有较多胜利实施案例的开源分布式效力框架是阿里巴巴的Dubbo,以下图是Dubbo的架构原理BREAD PPT DESIGN 效力框架客户端模块经过效力注册中心加载效力提供者列表效力提供者启动后自动向效力注册中心注册本人可提供的效力接口列表,查找需求的效力接口,并根据配置的负载平衡战略将效力调用恳求发送到某台效力提供者效力器。假设效力调用失败,客户端模块会自动从效力提供者列表选择一个可提供同样效力的另一台效力器重新恳求效力,实现效力的自动失效转移,保证高可用效力。 高扩展性3 3BREAD PPT DESIGN利用开放平台建立网站生态圈利用开放平台建立网站生态圈 大型网站为了更好的效力本人的用户,开放更多的增值效力,会把网站内部的效力封装成一些

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论