关于cdn原理(就是内容分发网络)

cdn,我理解其本质就是为了解决距离远产生的速度问题,使用就近的服务。css

从中国请求美国一台服务器上的图片。通常比较慢,由于距离这么远,网络传输是存在损耗的,距离越远,传输的时间就越长。通常会看到浏览器左下角显示:“已响应,正在传输数据..”。这不是服务器自己问题了。实际上服务器早就响应请求,把数据发给客户端,可是网络问题,就一直在传输,没传完了。前端

 

在中国,是南北距离远的问题。南北还会涉及到跨网,南方用户使用电信居多,北方用户网通居多。两个线路须要跨越,会有时间延迟。北京到广州的距离,若是直接请求web

cdn加速就是适应这个需求产生的:如今不请求美国的服务器。直接在中国安放节点(节点是比较笼统的词语,能够理解成一台服务器,也能够理解成一个机房,就是一个点嘛),请求距离近的节点。这样子就不须要那么远的距离了。sql

 

记得之前在长沙的网站,团购以城市分站的形式。北京和长沙用的是同一套程序。服务器在长沙。北京用户访问北京站的时候,实际上须要远距离访问长沙的服务器。速度怎么都快不起来。跟服务器性能彻底不要紧。当时不懂这些。不清楚怎么折腾。看那本《前端优化技巧》,想办法去作js代码压缩,浏览器缓存之类的。实际上瞎折腾。不是说这些前端优化不重要,哲学上有主次矛盾之分,瓶颈在哪里就去突破哪里。没解决主要矛盾,问题并不会迎刃而解。当时也不是数据库瓶颈。若是去优化数据库。也不会明显改善。就那点数据量。根本就达不到瓶颈。哪里谈得上主要矛盾。随着后来去其余公司工做,接触一些东西,相似不找瓶颈的优化例子发生在身边好几回了,先没找到瓶颈就瞎去优化。个人同事多是抱着多多益善的心态去作的,但主要矛盾(技术上说是瓶颈)没找到,也没改善。数据库

 

当时若是没想到是距离问题。也就不会想到cdn,当时其实我根本不知道cdn服务。我只知道,google这些网站确定在中国部署的服务器,要否则,中国用户还去访问美国的服务器,那再好的服务器都会速度慢的。后端

 

因为本身搭建cdn环境和机房的资金比较大(须要大量的服务器),也须要人力维护。反正通常的公司弄不起,其实根本不划算。淘宝之前用商用的cdn服务,后来商用的扛不住了,就搭建了本身的cdn网。我不知道新浪有没有本身搭建,但其实我以为跟淘宝的特色有关,店铺不少,不管是商品仍是交易记录总计起来商品不少的图片,图片都是静态的部分,cdn原本就是用来作静态的(图片,css,js等)请求分发用的。api

我以前在网上看到一句话,cdn网络不是通常的公司玩得起的。浏览器

通常的公司本身搭建cdn网络成本高,因此就有商业的cdn提供付费租用服务,这是一项很成熟的业务,不少这样的公司,大部分全国性的互联网公司都会使用到cdn。缓存

 

总结:cdn服务。对于静态内容是很是适合的。因此像商品图片,随着访问量大了后,租用cdn服务,只须要把图片上传到他们的服务器上去。服务器

 

例子:北京访问长沙服务器,距离太远。我彻底能够把商品图片,放到北京的云服务(我以为如今提供给网站使用的云存储其实就是cdn,给网站提供分流和就近访问)上去。这样子北京用户访问的时候,实际上图片就是就近获取。不须要很长距离的传输。

本身用一个域名img.xxx.com来载入图片。这个域名解析到北京的云服务上去。

 

作法:数据库中保存的是” images/2012/09/25/1343287394783.jpg”,

这些图片实际上不存储在web服务器上。上传到北京的cdn服务器上去。

我从数据库取出来,直接”img.xxx.com/”+” images/2012/09/25/1343287394783.jpg”

 

好比若是还有多个,就命名img1.xx.com、img2.xx.com

反正能够随便。因此若是把域名直接保存进去。就显得很麻烦了。迁移麻烦。

 

像淘宝,凡客,亚马逊这些电子商务网站,咱们看到请求的时候,下面每每会有

img1.xxx.cdn.com

img2.xxx.cdn.com

其实他们保存在数据库中的是相对路径。有些是不须要在数据库保存的,缩略图能够实时访问的时候用程序生成(节省不少存储空间)

 

实际上,把域名保存在数据库中,很是不利于系统迁移。一旦换个域名的话,原来保存在数据库中的是“www.abc.om/images/xxxxxx“,由于路径都在数据库中写死了。下回换个域名就用不了了。那个时候本身去写sql语句批量更新字段吧。

 

几个术语:

icp,Internet Content Provider,也就是网络内容提供者。联想到咱们运营一个网站须要icp备案了吗?你本身运营网站,你就是icp服务商

 

IDC(Internet Data Center),互联网数据中心。IDC的概念,目前尚未一个统一的标准。通俗点,就是提供机房托管(服务器租用和托管),域名注册之类的。

 

 

关于淘宝的图片存储

 

 

了解到:淘宝之前使用了商用的存储。可是无法知足需求。听说,到2010年,淘宝网后端保存着286亿张图片。商用的系统系统无法知足需求的时候。他们就本身开发了一个tfs。大规模的小文件在磁盘上读取,须要磁盘磁头频繁的寻道和换道。大并发状况下和大量的操做确实很麻烦。其实借鉴了当时google公布的gfs设计论文。google有相册服务。为每一个用户提供上传图片存储。

估计,google是率先实现这种小文件网络存储系统的。

 

有个观点比较好:对于老板们而言,每每以为,用钱能解决的都不算问题。但问题在于,你遇到的问题,别人都没遇到过。那这个时候你就没有经验能够参考或者直接拿来使用。只有本身参考一些思路去创造技术了。

 

3、关于图片进行云存储(cdn加速)

 

曾经看过这个,这个是比较适合创业公司的。价格相对便宜

https://www.upyun.com/

介绍提到,咱们在全国各地部署了55个CDN节点,500多台服务器,电信,联通,移动和教育网的4线带宽。

 

其实,如今的云存储本质就是一个cdn服务商。你把静态的图片上传到他提供的服务器上去(ftp方式上传或者api形式编写程序上传)。他为你作就近节点访问。

 

计费方式:按照流量付费,99元购买100g。怎么算流量。每次访问文件的大小累加,好比一个1m的文件,访问一次流量就加1m。

 

 

我我的理解,对于图片的量不大的状况下,使用这种云服务,好处不是节省存储空间。你本身的服务器100g的空间可能创业型公司都没用完,不是什么存储空间不够用,而后去用云存储。之前我对cdn比较模糊,有这么点理解,或者觉得是分散网站web服务器流压力,服务器分流。这些好处是有的。可是,只要理解了cdn产生的背景和解决的关键问题后,就会明白云存储关键好处在于:给用户就近节点访问,加速。

 

我以为,若是不是出于这个考虑,或者达不到这样的目的。用其余方案也彻底能够替代。何须使用云存储呢?就是你无非有实力作到全国多个节点去部署服务,才须要租用cdn来帮你,毕竟他们是规模产生的效益,专一于解决这个领域。

相关文章
相关标签/搜索