还有还有一个问题就是全部的内容都放在同一个地方。假设我们的server在芝加哥,那么美国中西部的人们訪问server的响应时间和用户体验就比香港、德国、南非以及佛罗里达州的用户好。由于那些用户离server的物理距离更远,依据物理定律来看。这些用户获取内容显然须要更长时间。这加大了请求的数量,并且当中大部分请求为静态内容或者是占用大量带宽的文件的请求。

单个字节的数据以server为原点传输到终端用户所花的时间被称为“往返时间”(round trip time)或者称作延迟(以毫秒为单位)。

假设我们先要更快的传输网页内容,那么我们最想要的事情也就是尽可能低的延迟。或许,毫秒听起来并非什么大问题。可是,假设你意识到一个典型的web页面有1M或者更大并且还包括很多单独的文件。那么请求页面所花费的毫秒数将添加。

延迟对于移动内容提供商来说是个更大的问题。由于手机网络本质上要比陆基网络延迟高的多。

虽然4G总是宣传有更大的带宽。但并不意味着有更低的延迟(这是两个全然不同的网络指标)。

为了说明两者的不同。我从3个不同的设备上訪问DBS中某一台server。得到结果例如以下:

  • DBS办公室的快速商业类10M网络环境下:12毫秒(最好)

  • AT&T公司的18兆U-verse家庭网络环境下:69毫秒

  • 我的安卓4G智能手机(Verizon):180毫秒(最差)

以上说明。带宽和延迟没有不论什么关系。

最好的情况比最差的情况快15倍,我们全部人中大多数人也都会选择比平均水平更快的网络去连接。

3G网络的延迟更高。往返时间(RTT)高达400毫秒。

同一时候,手机网络也更easy丢包(还有一个网络度量),这会从根本上减少性能。

所以。移动网络假设想要接近桌面程序的响应速度则须要採取一些更积极的优化策略。

因此,或许你正在一而再再而三的考虑这之间真的有这么大差别吗?眼下。已经有很多来自谷歌、雅虎以及其它公司的研究表明。每载入一次额外的第二个页面会有10%的转化率的下降。

再次强调,时间就是金钱。

CDN就是为解决上述提到的全部问题而存在的。

通过CDN,延迟有效的减少了,并且内容以更有效的方式传输。

CDN并非新的东西,在拨号上网的年代就已经存在,仅仅只是在非常长一段时间里仅仅是被像雅虎、YouTube这种大站点使用。

可是眼下。CDN变得越来越easy构建也使得小规模的用户也能够使用。

可是,CDN适用于全部情况吗?不是。实际上,CDN在非常多时候被过度使用了。

假设一个小型组织的用户都是当地用户,那么使用CDN效果就会非常小;并且使用CDN的成本可能会大于收益。

那么。谁应该考虑使用CDN:

  • 内容提供者的用户是分本在整个国家的或者期望针对整个国家或国际用户

  • 提供的内容须要非常高的带宽

  • 移动内容提供商

CDN不是万能的。它不能明显加快在主要托管环境或者应用配置等基础设施方面有问题的站点的訪问速度。

CDN仅仅有在其它潜在的性能问题都被解决的情况下才干得到最高效的使用。

CDN成本怎样?

大部分成本是在建立和管理这样的类型的托管环境。

并且因为额外的复杂性,也会潜在的使配置和管理资源方面花费很多其它时间。

(全文完。。。)

1. 本文由程序猿学架构翻译

2. 本文译自Performance Blog: Content Delivery Networks (CDN) Explained

3. 转载请务必注明本文出自:程序猿学架构(微信号:archleaner
)

4. 很多其它文章请扫码:

CDN具体解释(篇二)的更多相关文章

  1. Android开发之异步具体解释(二)之AsyncTask

    请尊重他人的劳动成果,转载请注明出处:Android开发之异步具体解释(二)之AsyncTask http://blog.csdn.net/fengyuzhengfan/article/details ...

  2. 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  3. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇二:基于OneNote难点突破和批量识别

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  4. 《高性能javascript》 领悟随笔之-------DOM编程篇(二)

    <高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...

  5. SQL Server调优系列玩转篇二(如何利用汇聚联合提示(Hint)引导语句运行)

    前言 上一篇我们分析了查询Hint的用法,作为调优系列的最后一个玩转模块的第一篇.有兴趣的可以点击查看:SQL Server调优系列玩转篇(如何利用查询提示(Hint)引导语句运行) 本篇继续玩转模块 ...

  6. php基础篇-二维数组排序 array_multisort

    原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(a ...

  7. C蛮的全栈之路-node篇(二) 实战一:自动发博客

    目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...

  8. 【SSRS】入门篇(二) -- 建立数据源

    原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...

  9. 【转】java提高篇(二)-----理解java的三大特性之继承

    [转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...

  10. CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三)----002

    原文链接:https://blog.csdn.net/cyq1162/article/details/53303390 前言说明: 本篇继续上一篇内容,本节介绍所有相关查询的使用. 主要内容提要: 1 ...

随机推荐

  1. 线性判别分析(LDA)

    降维的作用: 高维数据特征个数多,特征样本多,维度也很大,计算量就会很大,调参和最后评估任务时,计算量非常大,导致效率低. 高位数据特征特别多,有的特征很重要,有的特征不重要,可以通过降维保留最好.最 ...

  2. Ubuntu下编辑并编译运行c++程序

    一.使用vim编辑c++代码: vim hello.cpp 输入如下代码: #include <iostream> using namespace std; int main() { co ...

  3. centos7 install vim8

    centos7 install vim8 Git and dependency Git: https://github.com/vim/vim # yum install -y perl-devel ...

  4. js事件默认行为

    事件默认行为: 当一个事件发生的时候浏览器自己默认做的事情 怎么阻止? 当前这个行为是什么事件触发的,然后在这个事件的处理函数中使用 return false; 但是return false 阻止的是 ...

  5. day15-python之变量和递归

    1.局部变量与全局变量 #!/usr/bin/env python # -*- coding:utf-8 -*- # name='lhf' # def change_name(): # global ...

  6. LeetCode(11) Container With Most Water

    题目 Given n non-negative integers a1, a2, -, an, where each represents a point at coordinate (i, ai). ...

  7. LeetCode(74) Search a 2D Matrix

    题目 Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the fo ...

  8. Java学习关于随机数工具类--Random类

    Random类是伪随机数生成器.之所以称为伪随机数(pseudorandom),是因为它们只是简单的均匀分布序列.Random类定义了以下构造函数: Random() Random(long seed ...

  9. Fiddler抓包-get与post请求

    from:https://www.cnblogs.com/yoyoketang/p/6719717.html 本篇以博客园的请求为例,简单分析get与post数据有何不一样,以后也能分辨出哪些是get ...

  10. 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]-最小内积(第八届北京师范大学程序设计竞赛决赛)

    H. 最小内积                                                                   Time Limit: 1000ms Memory ...