简单-CDN

作者: Www刘 | 来源:发表于2016-11-19 10:09 被阅读161次

CDN能够使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度
CDN通过将网络内容发布到靠近用户的边缘节点,使不同地域的用户在访问相同网页时可以就近获取。这样既可以减轻源服务器的负担,也可以减少整个网络中的流量分布不均的情况,进而改善整个网络性能。所谓的边缘节点是CDN服务提供商经过精心挑选的距离用户非常近的服务器节点,仅“一跳”(Single Hop)之遥。用户在访问时就无需再经过多个路由器,大大减少访问时间。
从图4-9可以看出,DNS在对域名解析时不再向用户返回源服务器的IP,而是返回了由智能CDN负载均衡系统选定的某个边缘节点的IP。用户利用这个IP访问边缘节点,然后该节点通过其内部DNS解析得到源服务器IP并发出请求来获取用户所需的页面,如果请求成功,边缘节点会将页面缓存下来,下次用户访问时可以直接读取,而不需要每次都访问源服务器。

CDN架构
淘宝CDN系统用于支持用户购物,尤其是“双11”光棍节时的海量图片请求。如图4-10所示,图片存储在后台的TFS集群中,CDN系统将这些图片缓存到离用户最近的边缘节点。CDN采用两级Cache:L1-Cache以及L2-Cache。用户访问淘宝网的图片时,通过全局调度系统(Global Load Balancing)调度到某个L1-Cache节点。如果L1-Cache命中,那么直接将图片数据返回用户;否则,请求L2-Cache节点,并将返回的图片数据缓存到L1-Cache节点。
如果L2-Cache命中,直接将图片数据返回给L1-Cache节点;否则,请求源服务器的图片服务器集群。每台图片服务器是一个运行着Nginx的Web服务器,它还会在本地缓存图片,只有当本地缓存也不命中时才会请求后端的TFS集群,图片服务器集群和TFS集群部署在同一个数据中心内。

对于每个CDN节点,其架构如图4-11所示。从图中可以看出,每个CDN节点内部通过LVS+Haproxy的方式进行负载均衡。其中,LVS是四层负载均衡软件,性能好;Haproxy是七层负载均衡软件,能够支持更加灵活的负载均衡策略。通过有机结合两者,可以将不同的图片请求调度到不同的Squid服务器。

Squid服务器用来缓存Blob图片数据。用户的请求按照一定的策略发送给某台Squid服务器,如果缓存命中则直接返回;否则,Squid服务器首先会请求源服务器获取图片缓存到本地,接着再将图片数据返回给用户。数据通过一致性哈希的方式分布到不同的Squid服务器,使得增加/删除服务器只需要移动1/n(n为Squid服务器总数)的对象。
相比分布式存储系统,分布式缓存系统的实现要容易很多。这是因为缓存系统不需要考虑数据持久化,如果缓存服务器出现故障,只需要简单地将它从集群中剔除即可。
1.分级存储
分级存储是淘宝CDN架构的一个很大创新。由于缓存数据有较高的局部性,在Squid服务器上使用SSD+SAS+SATA混合存储,图片随着热点变化而迁移,最热门的存储到SSD,中等热度的存储到SAS,轻热度的存储到SATA。通过这样的方式,能够很好地结合SSD的性能和SAS、SATA磁盘的成本优势。
2.低功耗服务器定制
淘宝CDN架构的另外一个亮点是低功耗服务器定制。CDN缓存服务是IO密集型而不是CPU密集型的服务,因此,选用Intel Atom CPU定制低功耗服务器,在保证服务性能的前提下大大降低了整体功耗。

如果您要保证网站访问体验最优化,网站访问很热的静态内容是非常适合使用CDN的。

  1. 提升访问速度
    使用CDN后全国的访问速度-平均传输速度5.76MB/s


使用CDN前全国访问速度-平均下载速度590KB/s


  1. 降低带宽成本
    前面提到,在保证访问效果最优的情况下,使用CDN降最大程度的降低带宽成本和人力维护成本。
  2. 减轻源站压力
    使用CDN以后,一个带宽峰值100Gbps左右的大型站点基本只需要维护带宽峰值在1~2Gbps左右的源站即可。
  3. 隐藏源站,增强源站抗攻击能力
    由于CDN隐藏了源站的真实IP以及CDN天然的抗攻击能力,使用CDN后,源站的安全性会大幅提升。
    文/凝析微雨(简书作者)原文链接:http://www.jianshu.com/p/2c6520bd8383著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

相关文章

  • 简单-CDN

    CDN能够使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度CDN通过将网...

  • [QA]反劫持相关

    一、CDN相关 CDN,即内容分发网络,简单说就是把静态数据分布在很多CDN节点服务器上,CDN系统能实时根据网络...

  • vue2.0之安装

    安装--快速搭建大型单页应用 安装--简单单页面 cdn:https://cdn.jsdelivr.net/npm...

  • 新手入门之CDN的理解

    1.1CND的简单介绍 CDN的全称是Content Delivery NetWork ,既内容分发网络。CDN是...

  • CDN 防御功能分享

    (以下为活动分享内容) 什么是CDN 谈CDN的防御之前,先简单谈下CDN,有些朋友在实际工作中遇到的并不是太多,...

  • 利用Python对网站是否使用CDN进行“粗暴”的判断

    什么是CDN? CDN全称Content Delivery Network即内容分发网络。其简单说来就是为服务器建...

  • Vant-移动端Vue组件库

    通过 CDN 引入 使用 Vant 最简单的方法是直接在 html 文件中引入 CDN 链接,之后你可以通过全局变...

  • CDN

    一般来讲,CDN网络主要由中心节点、边缘节点两部分构成。CDN架构导引最简单的CDN网络只需一台负责全局负载均衡的...

  • 06.CDN 的缓存与回源机制解析

    内容出自前端性能优化原理与实践,我作为笔记简单记录下。 CDN的缓存与回源机制解析 CDN (Content De...

  • CDN原理

    BIND 视图技术实现DNS,Squid做前端缓存简单的CDN的搭建:1、CDN的工作原理:当外网访问内网域名的时...

网友评论

    本文标题:简单-CDN

    本文链接:https://www.haomeiwen.com/subject/tonspttx.html