- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.
.
八种架构设计模式及其优缺点概述(上)
1. 什么是架构
????????我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果。哈哈,我理解,架构就是骨架,如下图所示:
????????人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神经、皮肤。架构对于软件的重要性不亚于骨架对人类身体的重要性。
2. 什么是设计模式
????????这个问题我问过的面试者不下于数十次,回答五花八门,在我看来,模式就是经验,设计模式就是设计经验,有了这些经验,我们就能在特定情况下使用特定的设计、组合设计,这样可以大大节省我们的设计时间,提高工作效率。
????????作为一个工作10年以上的老码农,经历的系统架构设计也算不少,接下来,我会把工作中用到的一些架构方面的设计模式分享给大家,望大家少走弯路。总体而言,共有八种,分别是:
单库单应用模式:最简单的,可能大家都见过
内容分发模式:目前用的比较多
查询分离模式:对于大并发的查询、业务
微服务模式:适用于复杂的业务模式的拆解
多级缓存模式:可以把缓存玩的很好
分库分表模式:解决单机数据库瓶颈
弹性伸缩模式:解决波峰波谷业务流量不均匀的方法之一
多机房模式:解决高可用、高性能的一种方法
3. 单库单应用模式????????这是最简单的一种设计模式,我们的大部分本科毕业设计、一些小的应用,基本上都是这种模式,这种模式的一般设计见下图:
????????如上图所示,这种模式一般只有一个数据库,一个业务应用层,一个后台管理系统,所有的业务都是用过业务层完成的,所有的数据也都是存储在一个数据库中的,好一点会有数据库的同步。虽然简单,但是也并不是一无是处。
????????优点:结构简单、开发速度快、实现简单,可用于产品的第一版等有原型验证需求、用户少的设计。
????????缺点:性能差、基本没有高可用、扩展性差,不适用于大规模部署、应用等生产环境。
???????? ?? ????4. 内容分发模式??????? 基本上所有的大型的网站都有或多或少的采用这一种设计模式,常见的应用场景是使用CDN技术把网页、图片、CSS、JS等这些静态资源分发到离用户最近的服务器。这种模式的一般设计见下图:
????????
????????如上图所示,这种模式较单库单应用模式多了一个CDN、一个云存储OSS(七牛、又拍等雷同)。一个典型的应用流程(以用户上传、查看图片需求为例)如下:
上传的时候,用户选择本地机器上的一个图片进行上传
程序会把这个图片上传到云存储OSS上,并返回该图片的一个URL
程序把这个URL字符串存储在业务数据库中,上传完成。
查看的时候,程序从业务数据库得到该图片的URL
程序通过DNS查询这个URL的图片服务器
智能DNS会解析这个URL,得到与用户最近的服务器(或集群)的地址A
然后把服务器A上的图片返回给程序
程序显示该图片,查看完成。
????????由上可知,这个模式的关键是智能DNS,它能够解析出离用户最近的服务器。运行原理大致是:根据请求者的IP得到请求地点B,然后通过计算或者配置得到与B最近或通讯时间最短的服务器C,然后把C的IP地址返回给请求者。这种模式的优缺点如下:
????????优点:资源下载快、无需过多的开发与配置,同时也减轻了后端服务器对资源的存储压力,减少带宽的使用。
????????缺点:目前来说OSS,CDN的价格还是稍微有些贵(虽然已经降价好几次了),只适用于中小规模的应用,另外由于网络传输的延迟、CDN的同步策略等,会有一些一致性、更新慢方面的问题
八种架构设计模式及其优缺点概述(中)
2017-03-31 码农原创码农原创
码农原创文章,适合程序员、工程师、架构师等一切与软件开发相关的工作者阅读
????????在上篇文章中,介绍了八种架构设计模式中的两种,既:单库单应用模式、内容分发模式,没有读过的同学请手动微信关注“码农原创”公众号,在历史消息中寻找。接下来继续介绍三种架构模式,分别是:查询分离模式、微服务模式、多级缓存模式。
1. 查询分离模式
????????这种模式主要解决单机数据库压力过大,从而导致业务缓慢甚至超时,查询响应时间变长的问题,也包括需要大量数据库服务器计算资源的查询请求。这个可以说是单库单应用模式的升级版本,也是技术架构迭代演进过程中的必经之路。
????????这种模式的一般设计见下图:
????????如上图所示,这种模式较单库单应用模式与内容分发模式多了几个部分,一个是业务数据库的主从分离,一个是引入了ES,为什么要这样?都解决了哪些痛点,下面具体结合业务需求场景进行叙述。
场景一:全文关键词检索
????????我想这个需求,绝大多数应用都会有,如果使用传统的数据库技术,大部分可能
您可能关注的文档
最近下载
- DB37T4871-2025 城市轨道交通试运行技术规范.pdf VIP
- 医疗美容病历书写基本规范.docx
- 最新2023版知识产权贯标GBT29490表单 知识产权组织环境、相关方需要和期望分析一览表[知识产权合规管理体系文件].docx
- 冰雪雕设计及制作工程招标示范文本.doc VIP
- 广州恩宁路历史文化街区永庆坊微改造正式.pptx VIP
- 19028 安全生产治本攻坚三年行动方案(工程施工项目) (1).docx VIP
- 嘉世咨询-嘉世咨询2025中国集换式卡牌市场现状报告.pdf
- 招生话术培训课件.ppt VIP
- 教学课件-看得见的声音-.pptx VIP
- 安徽省血液透析管理规范.pdf VIP
原创力文档


文档评论(0)