8种常用的架构模式之内容分发模式-Java-E先生的博客
Java
MySQL
大数据
Python
前端
黑科技
大语言模型
    首页 >> 互联网 >> Java

8种常用的架构模式之内容分发模式

[导读]:内容分发模式...

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

image.png

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

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

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

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

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

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

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

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

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

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

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

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



本文来自E先生的博客,如若转载,请注明出处:https://www.javajz.cn

留言区

联系人:
手   机:
内   容:
验证码:

历史留言

欢迎加Easy的QQ