CDN中文意思即为内容分发网络,它其实是边缘计算的一种。消息内容通过网络传输有很大的延迟,举个例子:服务器在北京,用户在深圳,那么用户访问服务器来回需要几百毫秒了。在计算机世界,几百毫秒算是很大的延迟了。那么程序员就想,可不可以把用户要的内容先放到深圳去,这样子用户就是本地访问内容了,延迟可能就两三毫秒!这是巨大的进步!
把内容从北京拷贝到深圳,是一种服务端自己完成的,用户无感知。所以CDN技术是服务端技术!
国内提供CDN的厂商有很多,比如大家都知道的阿里云、腾讯云、aws等等。最高、最贵的厂商是网宿科技,苹果就用的他家的,如appstore软件分发!很多公有云产商或多或少也基于他家提供服务!你可以买网宿科技的股票,算科技股中很有潜力的!
什么是CDN?如何进行加速? 刚好本人近几年亲自参与过客户的自建阿里CDN的实施过程,下面具体来说一下。
什么是CDN早期的网络,比如淘宝,在晚上网络高峰期,很多人访问起来很慢,在有促销活动时,比如双十一,打不开网页,加入不到购物车,结算无法付款等。根本原因在于淘宝服务器承担不了大量用户的集中访问的压力,淘宝服务器的网络带宽问题,用户与淘宝服务器之间的网络连接问题,一起造成这种困境。
那么CDN技术的出现就从根本上解决了这一问题。CDN用专业术语来讲叫做内容分发网络,听起来不太友好,很拗口。通俗的说就是一种缓存机制,将内容商服务器的内容复制到离用户访问较快的服务器上,这样来解决不同区域,不同网络下的用户访问内容的问题。
CDN的工作方式在CDN网络下,用户访问CDN服务器通常是下面这样几个过程:
1. CDN服务器的工作
CDN服务器负责与内容源服务器进行内容同步,热点内容会优先进行同步,冷门内容是在有用户访问对应内容时,才开始进行同步,所以冷门内容有时好像看不了的样子。
2. 内容调度
当用户打开内容首页进行内容访问时,这时内容调度就开始,根据用户的IP地址,网络地区,匹配到调度规则,将用户的内容访问调度到用户访问最快的服务器上,一般来说就是离用户最近的区域,跟用户同一运营商的CDN节点服务器。
内容调度一般有两种方式:
2.1 IP调度
根据用户的IP地址源来进行调度(自建CDN的用户IP地址库需要事先在内容商处备案和录入调度策略)
2.2 DNS调度
根据用户使用的DNS源进行调度(自建CDN的用户所用DNS需要事先在内容商处进行备案和录入调度策略)
CDN加速案例某省广电的宽带业务做得非常好,但从电信和联通拿带宽成本太高,于是自建了内容CDN。
自建CDN所需工作:
CDN服务器——采购好服务器(一般BAT这种都需要数十台),安装好对应系统后,由内容商进行CDN服务器的配置;
网络互联———数据中心直接光纤到内容商数据中心,至少双路由20G互联,BGP进行连接,分别提供地址列表分发路由;
调度备案———将所用IP地址段和DNS到内容商处备案,入库(有访问权限);
整个过程中,调度备案可能是比较麻烦的工作。
省广电的阿里CDN流量图(直连光纤同步内容的带宽)
在完成内容CDN建设后,省广电下的宽带用户相当于在内网里面访问淘宝,腾讯视频,优酷,爱奇艺等内容,大大提高了用户访问速度,并节省高额的带宽费用。
CDN技术现在非常成熟,很多中小型运营商和宽带运营商都建立了自己的内部CDN,这也在一定程度上绕开了基础运营商,内容为王的时代就是这样,你还没有上CDN吗? 那就赶紧上吧。
CDN可以加速API接口吗?
CDN是在1995年由美国麻省理工大学提出来的,是一整套能够实现用户就近访问网络的解决方案。虽然CDN在90年代就提出来了,但也是最近几年才被国内网站广泛应用。以前都是国内大型网站才会采用的加速方案,而现在甚至个人网站都用上了CDN。
啥是CDN?CDN是内容分发网络的简称,它是一种分布式部署方案,CDN两大核心功能即:内容存储+分发。CDN有很多节点服务器,CDN厂商将这些节点缓存服务器分布在全国各地,利用负载均衡+智能DNS技术实现将用户的访问分发到距离用户最近的缓存服务器上,这样缓存服务器直接响应了用户的请求,加快了网站响应速度。
CDN具备哪些功能?CDN功能很强大,一般CDN都具备以下功能:
1、网站加速
CDN利用智能DNS的负载均衡技术能实现用户就近访问Cache节点服务器,能有效提高网站的响应速度。
2、镜像功能
CDN有很多节点,这些节点服务器会均衡分布在电信、联通、移动网络中。这样一来就消除了不同运营商间的互联互通问题,跨网关访问不存在过多的时间消耗。
3、缓解了源站服务器压力
通过合理的利用缓存策略,使得较多流量落在了CDN节点服务器之上,回源频率较小,这样就减轻了源站服务器的压力。
4、集群抗攻击
上面说过了,CDN本身就是一种分布式部署方案,CDN对一般中小型DDoS攻击有一定防御能力。
使用CDN是否可以加速API接口?一般而言多数用户都是将CDN作为网站加速来用,很多人觉得API数据是不能被缓存的,所以觉得API不应该用CDN加速。其实我们使用CDN同样可以给API做加速。上面讲到了,CDN可以消除不同运营商间的互访互通问题,举例说明一下:
假设你的API服务托管在电信机房,那么移动用户访问你的API时可能速度会比较慢,这是因为不同运营商间的互联互通访问时会经过较多网络节点,耗时会久一些。
但如果我们用了CDN给API来加速,那移动用户访问我们的API时,请求会先到距离用户最近的CDN节点服务器上,由这个节点服务器去请求API,这个CDN节点服务器一般是多线接入的,这样会尽可能减少用户到机房的网络故障机率。
另外使用了CDN后会隐藏源站服务器的IP,一定程度上提升了源站服务器的安全。
API(Application Programming Interface,应用程序编程接口)是一组定义、程序及协议的集合,提供通用的功能集,通过API接口实现计算机软件之间的相互通信。
如题,CDN可以通过API接口加速吗?
哟哟认为如果想要实现CDN的加速,最好采用增加节点,通过后端设备进行数据同步的方式,而API接口基本都是实时查询的数据。
下面哟哟来简单介绍一下如何实现CDN的加速:
CDN(Content Delivery Nerwork,内容分发网络)通过在因特网中新增一层新的网络架构,将内容分布到最接近用户的网络边缘,用以提供用户访问的响应速度。
CDN具体的工作流程:用户在访问某网站域名时,会先向本地DNS服务器请求该域名对应的解析,若本地DNS服务器没有,则经过DNS根服务器、域服务器等一系列服务器最终发送至网站的主DNS,根据某些策略来确认最适合的CDN节点,并将解析的结果返回给用户。
假设国内CDN节点过少,所有的用户访问请求均被定位到该CDN节点,那会造成网络的访问响应变慢,影响体验效果。若实现CDN的加速,最可行的办法就是增加CDN的节点,根据DNS的调度将访问用户通过方位调度到距离最近的CDN节点,并通过GSLB负载均衡的技术,实现对CDN的加速。