你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

通过 Azure 内容分发网络实现大型文件下载优化

得益于增强的功能、改进的图形和丰富的媒体内容,通过 Internet 分发内容的文件大小持续增长。 这一增长存在许多推动因素:宽带渗透、容量更大且价格实惠的存储设备、高清晰度视频的普遍增长以及连接到 Internet 的设备 (IoT)。 为了确保顺畅和愉快的使用者体验,为大型文件提供快速高效的交付机制至关重要。

大型文件的交付面临多项挑战。 首先,大型文件的平均下载时间可能很长,因为应用程序可能无法逐次下载所有数据。 在某些情况下,应用程序可能先下载文件的最后一部分,然后再下载第一部分。 当仅请求文件的一小部分或者用户暂停下载时,下载会失败。 下载还可能会延迟,直至内容分发网络从源服务器检索整个文件。

其次,用户的计算机与文件之间的延迟将决定他们查看内容的速度。 此外,网络拥塞和容量问题也会影响吞吐量。 服务器和用户之间的距离越远,就越有可能导致丢包,进而降低质量。 因吞吐量有限和丢包率增加导致的质量下降可能会使文件完成下载的等待时间增加。

第三,许多大型文件都没有全部传递。 用户可能中途取消下载文件,或者仅观看长 MP4 视频的前几分钟。 因此,许多软件和媒体交付公司希望仅交付用户请求的部分文件。 所请求部分的高效分发可降低来自源服务器的出口流量。 高效分发还会减少源服务器上的内存以及 I/O 压力。

借助 Microsoft 提供的 Azure 内容分发网络优化大型文件分发

Microsoft 推出的 Azure CDN 标准版终结点可分发大型文件,对于文件大小不设限制。 默认情况下,会启用其他功能以更快地传递大型文件。

对象区块

Microsoft 推出的 Azure CDN 标准版使用名为“对象区块”的技术。 当请求大型文件时,内容分发网络会从源检索文件的较小部分。 在内容分发网络 POP 服务器收到完整的或字节范围的文件请求后,内容分发网络边缘服务器会以 8 MB 大小的块的形式从源请求文件。

区块到达内容分发网络边缘后,会立即缓存并提供给用户。 内容分发网络会并行预提取下一个区块。 此预提取可确保内容先于用户一个区块,这可以减少延迟。 此过程将继续,直到整个文件下载完成(如果已请求),所有字节范围都可用(如果已请求),或客户端终止连接。

有关字节范围请求的详细信息,请参阅 RFC 7233

内容分发网络会在收到区块后进行缓存。 无需在内容分发网络缓存上缓存整个文件。 后续的文件或字节范围请求将从内容分发网络缓存提供。 如果未在内容分发网络上缓存所有区块,将使用预提取从源请求区块。 此优化取决于源服务器能否支持字节范围请求。 如果源服务器不支持字节范围请求,则下载大于 8 MB 的数据的请求将会失败。

大型文件优化的条件

对文件大小上限没有任何限制。

分块传输编码支持

Microsoft 内容分发网络支持传输编码响应,但最多支持 8 MB 内容大小。 如果分块传输编码响应超过 8 MB,Microsoft 内容分发网络将仅缓存并提供最初的 8 MB 内容。

借助 Edgio 提供的 Azure 内容分发网络优化大型文件分发

Edgio 推出的 Azure CDN 标准版和 Edgio 推出的 Azure CDN 高级版终结点可分发大型文件,对于文件大小不设限制。 默认情况下,会启用其他功能以更快地传递大型文件。

完整缓存填充

默认的完整缓存填充功能可在初始请求放弃或丢失时,使内容分发网络能够将文件拉取到缓存中。

完整缓存填充最适用于大型资产。 通常情况下,用户不会从头到尾下载这些资产。 而是使用渐进式下载。 默认行为会强制边缘服务器启动对源服务器中资产的后台提取。 然后,资产位于边缘服务器的本地缓存中。 缓存整个对象后,边缘服务器会执行已缓存对象的内容分发网络字节范围请求。

可通过 Edgio 推出的 Azure CDN 高级版中的规则引擎禁用默认行为。

对等缓存填充的热填充

默认对等缓存填充的热填充功能使用复杂的专有算法。 它基于带宽和聚合请求度量值使用其他边缘缓存服务器,以满足大型、高度热门对象的客户端请求。 此功能可防止出现大量额外请求被发送到用户的源服务器的情况。

大型文件优化的条件

使用常规 Web 分发优化类型时,会默认启用 Edgio 推出的 Azure CDN 标准版和 Edgio 推出的 Azure CDN 高级版的大型文件优化功能。 对文件大小上限没有任何限制。

其他注意事项

请注意此优化类型的以下方面:

  • 分块过程会向源服务器发出其他请求。 但是,从源传递的数据总量更小。 分块使内容分发网络具备更好的缓存性能。

  • 源的内存和 I/O 压力会降低,因为交付的是文件的较小部分。

  • 对于在内容分发网络上缓存的区块,在内容过期或从缓存中逐出之前,不会向源发出其他请求。

  • 用户可向内容分发网络发送范围请求,系统会将其视为普通文件进行处理。 仅当文件类型有效且字节范围在 10 MB 到 150 GB 之间时,才会应用优化。 如果所请求的平均文件大小小于 10 MB,则请改用常规 Web 分发。