云计算入门:不得不学习的 CDN 内容分发网络知识
什么是 CDN ?
本文将介绍内容分发网络 Content Delivery Network(CDN)。
内容分发网络(CDN)是一个互连分布式服务器网络,可加快数据密集型应用程序的网页加载速度。CDN 可以表示内容分发网络或内容分配网络。加快向全球用户访问网络的速度。
当用户访问某个网站时,来自该网站服务器的数据必须通过互联网传输到用户的计算机。如果用户距离该服务器较远,则加载大文件(例如视频或网站图像)将需要很长时间。相反,如果网站内容存储在距离用户较近的 CDN 服务器上,就可以更快到达他们的计算机。
在传统的网络服务上,大多数公司依靠单个原始服务器水平扩展以支持其用户群的使用。
也可以看到,这个的结构会使得离服务器远的用户数据包丢失、延迟或网络都懂。如果需要多次往返以生成完整的网络内容,这可以会大大增加加载时间,导致客户体验下降,严重的话网络用户会流失。
内容分发网络 CDN 的工作原理
CDN 架构的概念是使内容更接近用户,无论他们身在何处。
CDN 的基本原理是:多个物理节点分布在世界各地,向最近的用户提供高带宽的缓存内容。这些节点被称为网点(POP)。对于动态内容,大多数 CDN 供应商利用某种形式的网络和路由优化,将流量自动重新分配到最近的 POP。
通过在多个地理位置建立一个入网点(PoP)或一组 CDN 边缘服务器来工作。这个分布在不同地理位置的网络基于缓存、动态加速和边缘逻辑计算的原则工作。
此外,CDN 供应商还利用某种形式的图像/视频优化或压缩来提供大量的媒体相关内容。这就是为什么你上传至 YouTube 的视频最初默认为 360p 的质量。处理和分发内容到所有边缘服务器需要时间。然后,根据用户的位置和带宽,将其缓存为服务给用户。高质量的视频通常需要几个小时才能以同样的分辨率提供给用户。
缓存
缓存是存储相同数据的多个副本以加快数据访问的过程。在计算中,缓存的原理适用于所有类型的内存和存储管理。在 CDN 技术中,该术语是指将静态网站内容存储在网络中多个服务器上的过程。 CDN 中的缓存的工作原理如下:
- 来自偏远地理位置的网站访客首次从您的网站请求静态 Web 内容。
- 请求到达您的 Web 应用程序服务器或原始服务器。原始服务器将响应发送给远程访客。同时,它还将响应的副本发送到与该访客地理上最近的 CDN POP。
- CDN POP 服务器将副本存储为缓存文件。
- 下次该访客或该位置的任何其他访客发出相同的请求时,将由缓存服务器而不是原始服务器发送响应。
动态加速
动态加速是指通过在 Web 应用程序和客户端之间设置中间 CDN 服务器,从而加快对动态 Web 内容请求的服务器响应。缓存不适用于动态 Web 内容,因为内容因用户请求而异。CDN 服务器必须针对每个动态请求重新连接原始服务器,但它们通过优化自己与原始服务器之间的连接加速了该过程。
如果客户端通过互联网直接向 Web 服务器发送动态请求,则该请求可能会由于网络延迟而丢失或延迟。此外,可能还需要花费时间打开和关闭连接以进行安全验证。另一方面,如果附近的 CDN 服务器将请求转发到原始服务器,它们就已经建立了一个持续的、受信任的连接。例如,以下功能可以进一步优化它们之间的连接:
- 智能路由算法
- 地理位置靠近原始服务器
- 能够处理客户端请求,缩减其大小
边缘逻辑计算
您可以对 CDN 边缘服务器进行编程,以执行简化客户端和服务器之间通信的逻辑计算。例如,此服务器可以执行以下操作:
- 检查用户请求并修改缓存行为。
- 验证和处理不正确的用户请求。
- 在响应之前修改或优化内容。
Web 服务器和网络边缘之间的应用程序逻辑分布有助于开发人员减轻原始服务器的计算需求并提高网站性能。
CDN 的优点
内容分发网络(CDN)的主要目的是减少延迟,或减少由网络设计造成的通信延迟。由于互联网的全球性和复杂性,网站(服务器)与其用户(客户端)之间的通信流量必须跨越很长的物理距离。通信也是双向的,从客户端向服务器发送请求,服务器返回响应。
CDN 通过在客户端和网站服务器之间引入中间服务器来提高效率。这些 CDN 服务器将管理客户端与服务器之间的一些通信。它们可以降低传送到 Web 服务器的 Web 流量、减少带宽消耗,并改善应用程序的用户体验。
CDN 的优点如下:
- 减少负载时间和延迟
- 防止服务器超负荷,并确保可靠性更好
- 提高安全性并减少 DDoS 攻击
- 提高内容可用性
减少负载时间和延迟
CDN 架构不是直接为用户提供服务,而是将内容分发到战略上位于不同地方的多个边缘服务器。然后,根据用户的位置向他们提供内容。这大大减少了加载时间和延迟,因为内容来自最近的服务器。
防止服务器过载
边缘服务器能够在向用户提供相同的内容之前对其进行缓存。当用户请求特定的网络内容时,每个边缘服务器在向原点服务器请求之前,会检查他们是否在边缘有该文件。
该文件通常在边缘服务器中保持缓存状态,直到底层的生存时间(TTL)过期。通常的过期时间是七天左右。
边缘服务器重复使用同一缓存,为请求同一文件的多个用户提供服务。这大大降低了原生服务器的负载,提供了更好的用户体验。
更安全
由于用户访问最近的边缘服务器而不是原点服务器,每个单独的边缘服务器作为一个层,可以减轻 DDoS 攻击。这就保护了原始服务器不被攻陷或被恶意的人访问。
CDN 可以分发哪些互联网内容?
内容分发网络(CDN)可以分发两种类型的内容:静态内容和动态内容。
静态内容
静态内容是不会因用户而异的网站数据。网站标题图像、徽标和字体样式对于所有用户都保持不变,并且企业不会经常更改它们。静态数据无需修改、处理或生成,非常适合存储在 CDN 上。
动态内容
诸如社交媒体新闻推送、天气报告、登录状态和聊天消息等动态内容因网站用户而异。这些数据会根据用户的位置、登录时间或用户首选项而变化,并且网站必须为每个用户和每次用户交互生成数据。
部署策略
版本控制
拥有适当的数据版本控制是至关重要的。它可以确保在出现编码问题导致应用程序功能出现重大问题时,你可以轻松地回滚到之前的工作状态。你可能需要为新旧版本使用不同的CDN实例,以防止出现问题,如单一 CDN 实例从其缓存中提供旧内容。
内容简化
你可以通过捆绑和简化你的内容的文件大小来减少加载时间。这通常用于 CSS
和 JavaScript 等文件,在不改变基本功能的情况下,删除不必要的字符。
文件压缩
除此之外,另一个选择是在向 CDN 供应商或客户发送之前压缩文件。由于文件大小的减少,这可以大大改善性能。确保不要过度使用它,一些 CDN 供应商不鼓励对压缩格式的文件,如 MP3、MP4、ZIP 或 JPG 使用这种技术。
一些 CDN 供应商通过缓存只支持静态内容,而大型 CDN 供应商,如 Azure,可以同时处理静态内容(S3 存储)和动态内容(S1 Verizon,Akamai S2)。
存储和数据湖是两个不同的概念。存储是指云上的文件系统服务存储构造和有用的数据。您可以将其存储在本地本地,而是可以将数据上传并保存在云上。然后,您可以在最终应用程序中轻松地将其提供。
数据湖是一个集中存储库,可在任何规模上存储所有形式的数据。数据既可以是结构化的,也可以是非结构化的。您可以将其视为原始数据的垃圾场。然后,您可以根据自己的需求访问和处理数据。它主要用于大数据,实时分析和存储机器学习培训数据。
总结
这篇文章首先简要介绍了 CDN 以及通过传统方法提供内容时所面临的问题。然后,它转向了 CDN 背后的基本概念和它提供的优势。
最后,它讨论了 CDN 供应商如何不受干扰,以及不同供应商在提供静态和动态内容时的差异。
参考链接:
- 点赞
- 收藏
- 关注作者
评论(0)