写点什么

单库单应用 && 内容分发

作者:空空
  • 2021 年 12 月 06 日
  • 本文字数:866 字

    阅读完需:约 3 分钟

单库单应用 && 内容分发

单库单应用    


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



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


它的优点如下:


  • 结构简单

  • 开发速度快

  • 实现简单

  • 可用于产品的第一版等有原型验证需求、用户少的设计


它的缺点如下:


  • 性能差

  • 基本没有高可用

  • 扩展性差

  • 不适用于大规模部署、应用等生产环境


内容分发模式


基本上所有的大型的网站都有或多或少的采用这一种设计模式,常见的应用场景是使用 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 的同步策略等,会有一些一致性、更新慢方面的问题。


用户头像

空空

关注

还未添加个人签名 2018.04.11 加入

还未添加个人简介

评论

发布
暂无评论
单库单应用 && 内容分发