ITPub博客

首页 > 架构设计 > 设计模式 > 盘点成都品茶设计模式的工作室包括的六大原则

盘点成都品茶设计模式的工作室包括的六大原则

原创 设计模式 作者:蓉城小花猫 时间:2023-08-26 15:00:32 0 删除 编辑

这个问题我问过188的面试者不8146下于数十次1931,回答五花八门,在我看来,模式就是经验,设计模式就是 设计经验,有了这些经验,我们就能在特定情况下使用特定的设计、组合设计,这样可以大大节省我们的设计时间,提高工作效率。作为一个工作10年以上的老码农,经历的系统架构设计也算不少,接下来,我会把工作中用到的一些架构方面的设计模式分享给大家,望大家少走弯路。总体而言,共有八种,分别是:

  1. 单库单应用模式:最简单的,可能大家都见过

  2. 内容分发模式:目前用的比较多

  3. 查询分离模式:对于大并发的查询、业务

  4. 微服务模式:适用于复杂的业务模式的拆解

  5. 多级缓存模式:可以把缓存玩的很好

  6. 分库分表模式:解决单机数据库瓶颈

  7. 弹性伸缩模式:解决波峰波谷业务流量不均匀的方法之一

  8. 多机房模式:解决高可用、高性能的一种方法



图片

单库单应用模式

图片


这是最简单的一种设计模式,我们的大部分本科毕业设计、一些小的应用,基本上都是这种模式,这种模式的一般设计见下图:

图片

如上图所示,这种模式一般只有一个数据库,一个业务应用层,一个后台管理系统,所有的业务都是用过业务层完成的,所有的数据也都是存储在一个数据库中的,好一点会有数据库的同步。虽然简单,但是 也并不是一无是处。

  • 优点:结构简单、开发速度快、实现简单,可用于产品的第一版等有原型验证需求、用户少的设计。

  • 缺点:性能差、基本没有高可用、扩展性差,不适用于大规模部署、应用等生产环境。



图片

内容分发模式

图片


基本上所有的大型的网站都有或多或少的采用这一种设计模式,常见的应用场景是使用CDN技术把网页、图片、CSS、JS等这些静态资源分发到离用户最近的服务器。这种模式的一般设计见下图:

图片

如上图所示,这种模式较单库单应用模式多了一个CDN、一个云存储OSS(七牛、又拍等雷同)。一个典型的应用流程(以用户上传、查看图片需求为例)如下:

  1. 上传的时候,用户选择本地机器上的一个图片进行上传

  2. 程序会把这个图片上传到云存储OSS上,并返回该图片的一个URL

  3. 程序把这个URL字符串存储在业务数据库中,上传完成。

  4. 查看的时候,程序从业务数据库得到该图片的URL

  5. 程序通过DNS查询这个URL的图片服务器

  6. 智能DNS会解析这个URL,得到与用户最近的服务器(或集群)的地址A

  7. 然后把服务器A上的图片返回给程序

  8. 程序显示该图片,查看完成。

由上可知,这个模式的关键是智能DNS,它能够解析出离用户最近的服务器。运行原理大致是:根据请求者的IP得到请求地点B,然后通过计算或者配置得到与B最近或通讯时间最短的服务器C,然后把C的IP地址返回给请求者。这种模式的优缺点如下:

  • 优点:资源下载快、无需过多的开发与配置,同时也减轻了后端服务器对资源的存储压力,减少带宽的使用。

  • 缺点:目前来说OSS,CDN的价格还是稍微有些贵(虽然已经降价好几次了),只适用于中小规模的应用,另外由于网络传输的延迟、CDN的同步策略等,会有一些一致性、更新慢方面的问题。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70033185/viewspace-2978480/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2023-08-24

  • 博文量
    10
  • 访问量
    4572