首页 建站经验 正文

CDN是什么?用了CDN就一定比不用更快吗?

时间:2024-09-28 21:02 作者:80590网站大全 阅读:21 次

对于开发同学来说,CDN这个词,既熟悉又陌生。平时搞开发的时候很少需要碰这个,但却总能听到别人提起。我们都听说过它能加速,也大概知道个原因,但是往深了问。用了CDN就一定比不用更快吗?就感觉有些懵了。但没关系,今天我们换个角度重新认识下CDN。CDN是什么对于数字和文本类型的数据,比方说名字和电话号码相关的信息。我们需要有个地方存起来。我们通常会用mysql数据库去存。文本存在mysql中当我们需要重新将这一数据取出的时候,就需要去读mysql数据库。但因为mysql的数据是存在磁盘上的,单台实例,读性能到差不多5kqps就已经很不错了。看起来还凑合,但对于稍微大一点的系统,就稍微有点捉急了。为了提升点性能,我们在mysql之前再加一层内存做缓存层,比如常说的redis,读数据优先到内存里读,读不到才到mysql里读,大大减少了读mysql的次数。有了这套组合拳,读性能轻松上万qps。mysql和redis好了,到这里,我们说的都是我们平时比较容易接触的开发场景。但如果现在我要处理的,不再是上面提到的文本类数据,而是图片数据。比如,我有一张帅气的照片。就下面这张。每次刷某音听到有人翻唱蔡健雅的《letting go》的时候,我都忍不住想发这张图。并配文"还是忘不了"。那么问题来了。这张图片数据应该存在哪?,又该从哪里读?我们回过头去看mysql和redis的场景,无非就是存储层加缓存层。存储层和缓存层对于图片这样的文件对象,存储层不太可能再用mysql,应该改用专业的对象存储,比如亚马逊的S3(Amazon Simple Storage Service,注意后面是三个S开头的单词,所以叫s3),或者阿里云的oss(Object Storage Service)。下面的内容,我们就用比较常见的oss去做解释。而缓存层,也不能继续用redis了,需要改成使用CDN(Content Delivery Network,内容分发网络)。可以将CDN简单理解为对象存储对应的缓存层。CDN和OSS现在就可以回答上面的提问,对用户来说,这张图片数据存在了对象存储那,当有需要的时候,会从CDN那被读出来。CDN的工作原理有了CDN和对象存储之后,现在我们来看下他们之间是怎么工作的。我们平时看到的图片,可以右键复制查看它的URL。1667103075060会发现图片的URL长这样。\其中前面的cdn.xiaobaidebug.top就是CDN的域名,后面的1\是图片的路径名。当我们在浏览器输入这个URL就会发起HTTP GET请求,然后经历以下过程。CDN的查询流程第一阶段: 你的电脑会先通过DNS协议获得cdn.x\p这个域名对应的IP。• step1和step2:先查看浏览器缓存,再看操作系统里的/etc/hosts缓存,如果都没有,就会去询问最近的DNS服务器(比如你房间里的家用路由器)。最近的DNS服务器上有没有对应的缓存,如果有则返回。• step3:如果最近的DNS服务器上没有对应的缓存,就会去查询根域,一级域,二级域,三级域服务器。• step4:然后,最近的DNS服务器会得到这个cd\p域名的别名(CNAME),比如\m。•\是阿里CDN专用的DNS调度系统。• step5到step7:此时最近的DNS服务器会去请求这个k\,然后返回一个离你最近的IP地址返回给你。第二阶段: 对应上图里的step8。浏览器拿着这个IP去访问cdn节点,然后,cdn节点返回数据。上面第一阶段流程里,提到了很多新的名词,比如CNAME,根域,一级域啥的,它们在之前写的 「DNS中有哪些值得学习的优秀设计」有很详细的描述,如果不了解的话可以去看下。我们知道DNS的目的就是通过域名去获得IP地址。但这只是它的众多功能之一。DNS消息有很多种类型,其中A类型,就是用域名去查域名对应的IP地址。而CNAME类型,则是用域名去查这个域名的别名。对于普通域名,DNS解析后一般就能直接得到域名对应的IP 地址(又叫A类型记录,A指Address)。比如下面,我用dig命令发出DNS请求并打印过程数据。

共收录0个网站,0个公众号,0个小程序,0个资讯文章,0个微信文章
首页 关于我们 联系我们 收录标准 广告合作 免责声明 友情链接 网站地图
点击收藏小提示:按键盘CTRL+D也能收藏哦!

本站声明:本站所有资料取之于互联网,任何公司或个人参考使用本资料请自辨真伪、后果自负,分类目录网不承担任何责任。在此特别感谢您对分类目录网的支持与厚爱!
CopyRight © 2009-2021 80590.Com All Rights Reserved. 80590网址大全版权所有

网站目录 公众号 小程序 室内设计网

黔ICP备19007148号-13