专栏首页LIN_ZONECDN(Content Delivery Network)技术原理概要

CDN(Content Delivery Network)技术原理概要

简介

  1. CDN(Content Delivery Network)即内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能,使用户就近获取所需内容,提高用户访问响应速度和命中率。---- 来自:CDN百度百科 举个简单的例子:让原本上海的浏览器要访问北京主站内容的请求,转而由部署在上海或其他地方的缓存来受理,这样请求的数据只需要经过很短的距离就能够到达请求端,有效利用带宽并降低主站压力

工作原理

  1. CDN网络一般分为中心节点和边缘节点
    1. 中心节点功能:监控边缘节点的情况(可用性,拥塞程度),全局负载均衡管理,与主站点进行数据同步
  2. CDN工作原理: 浏览器访问一个网站所经历的步骤
    1. 未加CDN缓存的网站
      1. 用户在浏览器地址栏输入要访问的域名
      2. 浏览器解析域名得到对应的IP地址,再向此IP地址的服务器发出访问请求
      3. 浏览器根据服务器返回的东西显示网页内容
    2. 加CDN缓存的网站
      1. 用户在浏览器中输入要访问的域名
      2. 浏览器对域名解析,(CDN对域名解析过程进行了调整)得到该域名的CNAME记录,然后利用全局的负载均衡DNS解析得到实际的IP地址
      3. 浏览器在得到了实际的IP地址(缓存服务器的IP)后向缓存服务器发出访问请求
      4. 缓存服务器根据浏览器提供的要访问的域名通过DNS解析得到该域名对应的实际的IP地址,然后该缓存服务器向此实际IP地址提交访问请求
      5. 缓存服务器从实际IP地址得到内容后,进行两个操作:
        1. 将得到的内容保存到本地,以便以后使用
        2. 将获取的内容返回给客户端,完成数据服务过程
  3. 示例:
    1. 如图所示:
  1. CDN关键技术 CND关键技术有:内容路由技术、内容分发技术、内容存储技术、内容管理技术
    1. 内容路由功能
      1. CDN的负载均衡系统实现CDN的内容路由功能。CDN内容路由功能作用使用户请求到达CDN网络中的最佳节点
      2. 全局负载均衡主要目的是让用户的请求到达CDN网络中最近的节点
      3. 局部负载均衡 在特定的范围内寻找一台合适的节点提供服务(要考虑到节点的健康性、负载情况、支持的媒体格式等运行状态)
    2. 内容分发技术 内容分发技术主要是PUSH和PULL
      1. PUSH是一种主动分发的技术,通常由内容管理系统发起,将内容从源或者中心媒体资源库发布到各个边缘的Cache节点(HTTP/FTP)
      2. PULL 是一种被动的分发技术,当用户请求的内容不在请求所达到的边缘Cache的节点上时,该节点会从内容源或其他节点PULL下所需的内容(按需分发)
    3. 内容存储技术
      1. 内容源的存储 通常采用海量存储架构(内容的规模及吞吐量较大)
      2. 在Cache节点中的存储 Cache节点的存储要考虑:
        1. 功能上,对各种内容格式的支持、对部分缓存的支持
        2. 性能上,容量大小,吞吐率、可靠性及稳定性
    4. 内容管理技术 本地内容管理(对Cache节点而言)的目标是提高内容服务的效率,提高本地节点的存储利用率。
      1. 本地内容索引是实现基于内容感知调度的关键
      2. 本地内容的复制。通常为了提高存储的效率,同一个内容只在某个特定的节点中存储一份,当对该内容的访问超过这个节点的能力范围,就将该内容进行分发到其他节点上
      3. 本地内容访问状态的收集。搜集各个节点上各个内容访问的统计信息,节点可用服务能力及内容变化的情况

    注:在这里只是简单介绍了一下这几种技术,并不是特别详细,先对这些有个大概了解,方便以后的学习,如果感觉本文的内容说的不具体的话可以看一下这篇文章:CDN技术详解及实现原理,因为有些东西我还不懂,所以有些内容还未涉及到,请大家见谅。

注:本文参考 CDNCDN的四大关键技术 如需转载请注明出处:http://www.cnblogs.com/zhuchenglin/p/8978600.html

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=24pg1rt5k61ws

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Golang中的RPC(转载)

    GitHub: https://github.com/zhuchenglin/gorpc

    lin_zone
  • Mac OSX取消Apache(httpd)开机启动(转载)

    启动服务时提示Apache启动失败,80端口被占用.查看进程发现存在几个httpd. OS X自带Apache,可是默认是没有启动的.我也没有开启Web共享,怎...

    lin_zone
  • mysql存储emoji问题

    前一段时间,项目中需要在数据库中存储emoji,由于编码格式不对,直接导致数据库报错,后来修改mysql的编码,就解决了

    lin_zone
  • 图解LeetCode第 445 号问题: 两数相加 II

    给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。

    五分钟学算法
  • 力扣198——打家劫舍

    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小...

    健程之道
  • 【Leetcode】53. 最大子序和

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例:

    Leetcode名企之路
  • LeetCode 209. Minimum Size Subarray Sum(DP)

    题解:可以用动态规划,我就是用动态规划过的,但是确实不是最简单的解法,看了题解最简单的是双指针,

    ShenduCC
  • Salesforce LWC学习(一)Salesforce DX配置

    最开始做salesforce开发时使用eclipse,后来因为太笨重以及不太方便所以改用了sublime + haoide。sublime + haoide无...

    用户1169343
  • Socket一些常用的方法封装

    冰封一夏
  • SUMO使用教程(六)

    今天一直在设置SUMO中的交通灯,但是官方文档对具体配置文件的编辑说的很详细,但是怎么导入到其中就一笔带过了,根据上下文猜测,数次尝试也不行,最后曲线救国,毕...

    钱塘小甲子

扫码关注云+社区

领取腾讯云代金券