八种架构设计模式及其优缺点概述(上)1
什么是架构我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果
哈哈,我理解,架构就是骨架,如下图所示:人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神经、皮肤
架构对于软件的重要性不亚于骨架对人类身体的重要性
什么是设计模式这个问题我问过的面试者不下于数十次,回答五花八门,在我看来,模式就是经验,设计模式就是设计经验,有了这些经验,我们就能在特定情况下使用特定的设计、组合设计,这样可以大大节省我们的设计时间,提高工作效率
作为一个工作10年以上的老码农,经历的系统架构设计也算不少,接下来,我会把工作中用到的一些架构方面的设计模式分享给大家,望大家少走弯路
总体而言,共有八种,分别是:1
单库单应用模式:最简单的,可能大家都见过2
内容分发模式:目前用的比较多3
查询分离模式:对于大并发的查询、业务4
微服务模式:适用于复杂的业务模式的拆解5
多级缓存模式:可以把缓存玩的很好6
分库分表模式:解决单机数据库瓶颈7
弹性伸缩模式:解决波峰波谷业务流量不均匀的方法之一8
多机房模式:解决高可用、高性能的一种方法3
单库单应用模式这是最简单的一种设计模式,我们的大部分本科毕业设计、一些小的应用,基本上都是这种模式,这种模式的一般设计见下图:如上图所示,这种模式一般只有一个数据库,一个业务应用层,一个后台管理系统,所有的业务都是用过业务层完成的,所有的数据也都是存储在一个数据库中的,好一点会有数据库的同步
虽然简单,但是也并不是一无是处
优点:结构简单、开发速度快、实现简单,可用于产品的第一版等有原型验证需求、用户少的设计
缺点:性能差、基本没有高可用、扩展性差,不适用于大规模部署、应用等生产环境
内容分发模式基本上所有的大型的网站都有或多或少的采用这一种设计模式,常见的应用场景是使用CDN技术把网页、图