![](https://i-blog.csdnimg.cn/blog_migrate/09fc81fd24717aa9d39770fce86caeb7.jpeg)
还有另一个问题就是所有的内容都放在同一个地方。如果我们的服务器在芝加哥,那么美国中西部的人们访问服务器的响应时间和用户体验就比香港、德国、南非以及佛罗里达州的用户好。因为那些用户离服务器的物理距离更远,根据物理定律来看,这些用户获取内容显然需要更长时间。这加大了请求的数量,而且其中大部分请求为静态内容或者是占用大量带宽的文件的请求。
单个字节的数据以服务器为原点传输到终端用户所花的时间被称为“往返时间”(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. 更多文章请扫码: