还有另一个问题就是所有的内容都放在同一个地方。如果我们的服务器在芝加哥,那么美国中西部的人们访问服务器的响应时间和用户体验就比香港、德国、南非以及佛罗里达州的用户好。因为那些用户离服务器的物理距离更远,根据物理定律来看,这些用户获取内容显然需要更长时间。这加大了请求的数量,而且其中大部分请求为静态内容或者是占用大量带宽的文件的请求。
单个字节的数据以服务器为原点传输到终端用户所花的时间被称为“往返时间”(round trip time)或者称作延迟(以毫秒为单位)。如果我们先要更快的传输网页内容,那么我们最想要的事情也就是尽可能低的延迟。也许,毫秒听起来并不是什么大问题;但是,如果你意识到一个典型的web页面有1M或者更大而且还包含许多单独的文件,那么请求页面所花费的毫秒数将增加。
延迟对于移动内容提供商来说是个更大的问题。因为手机网络本质上要比陆基网络延迟高的多。尽管4G总是宣传有更大的带宽,但并不意味着有更低的延迟(这是两个完全不同的网络指标)。为了说明两者的不同,我从3个不同的设备上访问DBS中某一台服务器,得到结果如下:
-
DBS办公室的高速商业类10M网络环境下:12毫秒(最好)
-
AT&T公司的18兆U-verse家庭网络环境下:69毫秒
-
我的安卓4G智能手机(Verizon):180毫秒(最差)
以上说明,带宽和延迟没有任何关系!
最好的情况比最差的情况快15倍,我们所有人中大多数人也都会选择比平均水平更快的网络去连接。3G网络的延迟更高,往返时间(RTT)高达400毫秒。同时,手机网络也更容易丢包(另一个网络度量),这会从根本上降低性能。
所以,移动网络如果想要接近桌面程序的响应速度则需要采取一些更积极的优化策略。
因此,也许你正在一而再再而三的考虑这之间真的有这么大区别吗?目前,已经有许多来自谷歌、雅虎以及其他公司的研究表明,每加载一次额外的第二个页面会有10%的转化率的下降。再次强调,时间就是金钱。
CDN就是为解决上述提到的所有问题而存在的。通过CDN,延迟有效的降低了,而且内容以更有效的方式传输。
CDN并不是新的东西,在拨号上网的年代就已经存在,只不过在很长一段时间里只是被像雅虎、YouTube这样的大网站使用。但是目前,CDN变得越来越容易构建也使得小规模的用户也可以使用。
但是,CDN适用于所有情况吗?不是,实际上,CDN在很多时候被过度使用了。如果一个小型组织的用户都是当地用户,那么使用CDN效果就会很小;而且使用CDN的成本可能会大于收益。
那么,谁应该考虑使用CDN:
-
内容提供者的用户是分本在整个国家的或者期望针对整个国家或国际用户
-
提供的内容需要很高的带宽
-
移动内容提供商
CDN不是万能的。它不能明显加快在主要托管环境或者应用配置等基础设施方面有问题的网站的访问速度。CDN只有在其他潜在的性能问题都被解决的情况下才能得到最高效的使用。
CDN成本如何?
大部分成本是在建立和管理这种类型的托管环境。而且由于额外的复杂性,也会潜在的使配置和管理资源方面花费更多时间。
(全文完。。。)
1. 本文由程序员学架构翻译
2. 本文译自Performance Blog: Content Delivery Networks (CDN) Explained
3. 转载请务必注明本文出自:程序员学架构(微信号:archleaner )
4. 更多文章请扫码:
相关推荐
在现代Web开发中,CDN(Content Delivery Network)已经成为加速静态资源加载的重要工具,尤其是在使用React和Webpack构建大型应用时。...希望这篇文章能帮助到大家,如果有更多问题,欢迎继续探讨和学习。
本书共5篇22章,开篇是本书的导读;架构篇是设计思想的提升,包括企业总体架构、应用架构设计、统一应用分层等;框架篇主讲中间件和工具的使用,包括消息队列、缓存、Job、集中式日志、应用监控和微服务等;
【WordPress CDN插件详解】 在数字化时代,网站的性能与用户体验息息相关,而CDN(Content Delivery Network)服务在其中扮演了重要角色。WordPress作为全球最受欢迎的CMS系统,其用户经常寻求优化加载速度的方法,这...
本文将基于“百度SEO优化详解”这一主题,结合描述中的30多篇文章,深入探讨相关知识点,旨在帮助网站提高在百度搜索结果中的可见性,从而增加流量和潜在客户。** 首先,我们需要了解百度的排名算法。与谷歌的...
本篇将详细讲解如何使用ECharts创建一个完整的词云图示例,并对相关的配置参数进行详解。 一、ECharts简介 ECharts是百度推出的一款开源的、跨浏览器的图形库,支持多种数据图表,如地图、热力图等,特别适合用于...
《jQuery.dataTables.js 使用详解——一、基础配置》 在网页开发中,数据展示是一个重要的环节,而jQuery.dataTables.js插件为高效、美观的数据表格呈现提供了强大的解决方案。本篇将深入探讨该插件的基础配置,...
《Morris.js在Meteor中的CDN使用详解》 在现代Web开发中,CDN(Content Delivery Network)被广泛用于加速静态资源的加载,如JavaScript库、CSS样式表等。本篇文章将详细探讨如何在Meteor框架中利用CDN引入Morris.js...
【Web CDN存储库:jsdelivr详解】 Web CDN(Content Delivery Network)是一种分布式网络服务,用于分发静态网页内容,如JavaScript、CSS、图片和视频等,以提高网站加载速度和性能。jsdelivr是一个开放源码的全球...
本篇文章将深入探讨如何通过DNSPod和Squid技术来构建个人内容分发网络(Content Delivery Network, CDN),并重点讲解安装CentOS Linux的过程。在搭建CDN的过程中,操作系统的选择至关重要,而CentOS Linux以其稳定性...
**SIGCOMM 2011 论文集详解** SIGCOMM是计算机通信和网络领域的顶级会议,每年都会吸引全球各地的研究者提交他们的最新研究成果。2011年的SIGCOMM会议汇集了49篇高质量的论文,这些论文涵盖了网络通信、数据传输、...
本篇文章将深入探讨如何优化大文件上传的流程,提升用户体验并减轻服务器负担。 首先,我们要理解大文件上传的常见问题。由于大文件的数据量大,上传时间可能较长,这可能导致用户在网络不稳定的情况下上传失败。...
在本篇中,我们将深入探讨如何使用SpringBoot和ECharts构建一个词云案例。SpringBoot是一个流行的Java框架,用于简化Web应用的开发,而ECharts则是一个强大的JavaScript数据可视化库,能够帮助我们创建各种交互式的...
这篇教程主要探讨了阿里巴巴的电子商务实践,旨在帮助读者更好地理解和运用电子商务的相关知识,同时提供了源码供学习者实战演练。 首先,从文件名来看,我们可以推测这可能是一个关于网站构建和功能实现的教学资料...
使用 Vue-Admin-Template 优化历程详解 在本篇文章中,我们将详细介绍使用 Vue-Admin-Template 的优化历程。 Vue-Admin-Template 是一个基于 Vue.js 的后台管理系统模板,旨在提供一个快速、灵活、可扩展的解决方案...
或者,您可以通过Robot Web Tools CDN使用当前版本:( )| () 依存关系 ros2djs取决于: 。 当前支持的版本是0.4.14。 当前支持的版本可以在Robot Web Tools CDN上找到:( )| () EaselJS 。 当前支持的...
本篇文章将深入探讨如何在使用 Webpack 的项目中集成和优化 ECharts,一个功能丰富的JavaScript 数据可视化库。 首先,为了在项目中使用 ECharts,你需要通过 npm 安装它。在 3.1.1 版本之前,ECharts 的 npm 包是...
### 知识点详解 #### 一、Highcharts概述与安装 **Highcharts**是一款流行的JavaScript图表库,专为Web应用程序设计。它以其强大的功能、灵活性以及美观的图表展示著称,广泛应用于在线数据分析和可视化。 ##### ...
《ArcGIS API for JavaScript接入高德地图详解》 在地理信息系统(GIS)开发中,ArcGIS API for JavaScript 是一款强大的工具,它允许开发者在Web应用中集成Esri的地图服务和地理处理功能。本文将深入探讨如何利用...