八种架构设计模式及其优缺点.pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
八种架构设计模式及其优缺点概述 ( 上 ) 1. 什么是架构 我想这个问题, 十个人回答得有十一个答案, 因为另外的那一个是大家妥 协的结果。哈哈,我理解,架构就是 骨架 ,如下图所示: 人类的身体的支撑是主要由骨架来承担的, 然后是其上的肌肉、 神经、 皮 肤。架构对于软件的重要性不亚于骨架对人类身体的重要性。 2. 什么是设计模式 这个问题我问过的面试者不下于数十次, 回答五花八门, 在我看来, 模式 就是 经验 ,设计模式就是 设计经验 ,有了这些经验, 我们就能在特定情况下使用特定的设计、 组合设计,这样可以大大节省我们的设计时间,提高工作效率。 作为一个工作 10 年以上的老码农,经历的系统架构设计也算不少,接下 来,我会把工作中用到的一些架构方面的设计模式分享给大家, 望大家少走弯路。 总体而言, 共有八种,分别是: 1. 单库单应用模式 :最简单的,可能大家都见过 2. 内容分发模式 :目前用的比较多 3. 查询分离模式 :对于大并发的查询、业务 4. 微服务模式 :适用于复杂的业务模式的拆解 5. 多级缓存模式 :可以把缓存玩的很好 6. 分库分表模式 :解决单机数据库瓶颈 7. 弹性伸缩模式 :解决波峰波谷业务流量不均匀的方法之一 8. 多机房模式 :解决高可用、高性能的一种方法 3. 单库单应用模式 这是最简单的一种设计模式,我们的大部分本科毕业 设计、一些小的应用,基本上都是这种模式,这种模式的一般设计见下图: 如上图所示, 这种模式一般只有一个数据库, 一个业务应用层, 一个后台 管理系统,所有的业务都是用过业务层完成的,所有的数据也都是存储在一个数据库中的, 好一点会有数据库的同步。虽然简单,但是 也并不是一无是处 。 优点: 结构简单、 开发速度快、 实现简单, 可用于产品的第一版等有原型 验证需求、用户少的设计。 缺点: 性能差、基本没有高可用、扩展性差,不适用于大规模部署、应用 等生产环境。 4. 内容分发模式 基本上所有的大型的 网站都有或多或少的采用这一种设计模式,常见的应用场景是使用 CDN技术把网页、图片、 CSS、JS 等这些静态资源分发到离用户最近的服务器。这种模式的一般设计见下图: 如上图所示,这种模式较单库单应用模式多了一个 CDN、一个云存储 OSS(七牛、又拍等雷同 ) 。一个典型的应用流程 ( 以用户上传、查看图片需求为例 ) 如下: 1. 上传的时候,用户选择本地机器上的一个图片进行上传 2. 程序会把这个图片上传到云存储 OSS上,并返回该图片的一个 URL 3. 程序把这个 URL字符串存储在业务数据库中,上传完成。 4. 查看的时候,程序从业务数据库得到该图片的 URL 5. 程序通过 DNS查询这个 URL的图片服务器 6. 智能 DNS会解析这个 URL,得到与用户最近的服务器 ( 或集群 ) 的地址 A 7. 然后把服务器 A 上的图片返回给程序 8. 程序显示该图片,查看完成。 由上可知,这个模式的关键是智能 DNS,它能够解析出离用户最近的服务 器。运行原理大致是:根据请求

文档评论(0)

jjwhy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档