阿里云CDN架构技术(一)

news2024/11/14 14:52:45

CDN补充

cdn内容分发网络(content delivery network,cdn)
构建在互联网TCP/IP四层模型之上对用户透明的覆盖网。

该网络通过全球范围内分布式部署边缘服务器,将互联网内容从互联网中心缓存到靠近用户的边缘服务器上,降低用户访问时延长减少穿越互联网核心网的流量:优化互联网流量分布,提升用户终端服务质量

电商,金融交易动态业务加速崛起,以及新冠高校突然暴增线上(网课),cdn起到了巨大的作用,也是2018年至现在最重要的一个企业架构部署环节!

cdn通过动态路由规划,协议传输等技术进行传输加速,DDOS(Distributed denial of service,分布式拒绝攻击)网络攻击事件不断涌现,cdn基于其广泛的边缘节点,结合智能攻击流量检测及流量清洗技术(避免攻击流量把内容源站打垮,保证互联网公司业务运行)

cdn基本原理

互联网超过50%流量通过cdn进行加速,今年暴增业务:门户网站,短视频,长剧,购物,在线学习,cdn支撑上亿学生学习(新冠疫情突发,各高校线下课转到了线上课,钉钉软件突然出现系统崩溃,随后官方也是加急修复,原因:平时用户业务访问流量没有超过该公司所预期,突然全部转为线上,用户访问流量从原来几倍直接突变为几十倍速率,对该软件后台数据库,带宽,加速业务带来了巨大挑战,也是因为新冠事情,现中型企业更加更加重视cdn服务)

CDN相对于底层IP网,提供动态加速,静态加速,安全访问三个核心能力
在这里插入图片描述

动态内容加速原理

动态:对于不能缓存内容(电商实时推荐,账号密码认证–用户通过前后端,数据库进行交互),可以通过优化路由进行加速

静态:可缓存内容(图片,短视频,大文件)进一步通过缓存来实现以存储空间换带宽目的,大幅度降低传输时延

动态内容加速示意图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
CDN服务端:调度系统,节点系统,支撑系统—解决各类用户 请求与cdn边缘节点的适配问题

(1.缩短互联网用户的访问时间延长问题 2.保证CDN边缘节点之间的负载均衡 )

调度系统:解决用户请求CDN边缘节点之间的负载均衡

节点系统:被动缓存、主动预取技术-》大部分互联网用户请求实现边缘响应(实行加速)(同时通过多级缓存减少回用户源站流量)

CDN动态内容加速的应用场景

电子商务、互动论坛博客为代表的互联网业务存在大量不能缓存、需要实时回源的动态内容加速场景。例如,电商平台涉及了用户注册、登录、在线支付、秒杀等需要动态加速的场景

CDN维护:实时路由探测系统,实时链路质量信息,考虑路由优选与链路负载均衡因素(计算出最佳线路)
在这里插入图片描述

CDN的静态内容加速

静态内容加速特点:高性能,灵活度高;

大型CDN厂商:上千万级别边缘节点+高性能缓存软件=热点内容90%以上的边缘hit(命中率),缩短响应时间,提升用户体验

大文件、图片以及在线点播业务的本质:通过互联网,将静态文件内容从内容生产者分发给终端用户

在这里插入图片描述

安全防护

政府,金融,游戏加速:需要保障防止遭受DDOS,CC(Challengecollapsar)攻击;互联网金融业务,金融数据是恶意爬虫攻击的首要对象,其站点性能、网站安全以及内容安全需要同时兼顾
在这里插入图片描述

CDN技术为什么很厉害

  1. CDN在原有互联网技术上构建:分布式覆盖网(弥补原有互联网在内容加速及安全访问方面的不足–提升电商,游戏,短视频等)
  2. 互联网设计理念:
    网络互联:通过一套标准的网络协议把异构的各类自治域网络连接在一起
    在这里插入图片描述

尽力而为:互联网具有与电信网不一样的运行机制,通过“存储转发”而不是链路独享的方式向互联网用户提供尽量可靠的服务质量

CDN出现之前:出现问题

  1. 自制域网络之间随用户与内容服务器之间的距离增加,服务质量不断下降
  2. 跨自制域流量传输遭遇质量降级,传输失败
  3. 出现大量冗余互联网流量不断·穿越基于BGP(边界网关协议,造成核心网络链路拥塞—降低服务质量级)
    4.技术出现之前都是端到端的,不能减少互联网内容在跨域骨干网上的重复传输

需要解决:

减少跨区域核心流量网的冗余传输,提升用户的体验性能,核心的诉求是:更高的可靠性,可扩展性

解决方式:

  1. 重新设计并部署新的互联网协议
  2. 在已有的协议基础上构建一个覆盖网,弥补设计不足
    CDN技术应用而生

CDN系统架构概述

CDN整体框架

在这里插入图片描述

CDN调度系统

DNS、HTTPDNS调度解析服务,节点资源调度服务,调度策略维护,直播、点播、动态加速等产品线提供核心调度能力,资源状况实时调整调度策略

CDN节点系统

缓存服务、安全防护、日志收集、状态检查、内容管理等

节点点播架构采用Tengine+Swift模式,包括业务逻辑控制、缓存控制等功能;
直播架构采用Tengine+live模式:提供直播边缘推流及播放端拉流等相关服务

CDN运维支撑系统

提供数据交换,中心服务,
提供日志分析、天眼监控、域名配置管理、节点配置管理、内容管理及对外的API服务,与节点系统、调度系统、用户控制台之间建立数据交换通道

用户控制台

用户提供自助接入CDN服务的便捷窗口,包括CDN接入域名配置、实时/离线监控数据、日志下载、资源刷新与预热,以及直播、点播业务配置。

CDN业务场景

  • 直播对时延和卡顿:网络抖动的忍受度很低
  • 点播仅对卡顿有严苛的要求,可通过调控视频播放器缓冲器(buffer)的大小在一定程度上抵消网络抖动的影响
  • 电商、微服务接口、交易类业务,内容请求都通过HTTPS来保护内容传输安全,且用户请求的QPS(Query Per Second,每秒请求数)高度并发,属于算力密集型业务。其对CPU算力的需求很大
  • 点播、下载类业务,单文件的大小比较大,呈现出流量CDN平台上,节点资源呈现出集群数量庞大、单集群规模小、广域分布、异构构成[网络、存储、计算的容量规格和QoS(Quality of Service,服务质量)都有差异]等特征密集型的特征,CPU算力的需求较小

阿里云cdn调度系统架构图
在这里插入图片描述
全局负载均衡模块:在成本规划模块给定成本线与资源调度模块划定业务节点集合,生成全局调度策略。

调度执行器是执行全局负载均衡调度策略的调度服务器组件,包含DNS执行器、HTTPDNS执行器、302执行器等。这三种组件对应三种不同的用户请求调度牵引方式,即LDNS(Local DNS,本地域名服务器)牵引、App端绕过DNS自行解析牵引、302跳转牵引

节点软件

节点软件在CDN系统中作为用户数据流的核心通道,包括从最开始用户流量的接入,到资源的缓存,再到未命中资源的回源拉取

  • 提供高性能、稳定的接入网关
  • 提供高性能、稳定的缓存服务,在NVMe(Non-VolatileMemoryexpress)、SSD(Solid State Disk)、SATA(Serial Advanced Technology Attachment)盘等不同硬件上实现不同的淘汰算法,最大限度地挖掘软件性能。
  • 提供高性能、稳定的回源服务,在不同网络状况下保证回源的稳定性

稳定和高性能是提供大规模服务能力的前提,丰富的产品化功能是满足海量用户需求的基础,可编程能力扩展是阿里云CDN节点软件的优势

阿里云CDN给出的节点软件示意图,主要分成接入网关、缓存组件、回源组件三大部分。
在这里插入图片描述

网络传输

网络传输是影响CDN传输性能的关键系统。基于优质的节点资源和良好的调度策略,网络传输优化技术可在原基础上再大幅提升传输速率、缩短首屏时间、降低卡顿率,给用户带来更顺畅的体验。

在这里插入图片描述
网络传输优化不仅影响用户与L1边缘点之间的传输性能,也影响L1、L2内部的传输。而如果开启回源加速,则还能提升到源站的传输性能。通常用户与L1之间的网络传输基于TCP等传输协议,此时L1节点开启单边加速,即优化只在服务器侧进行。而如果用户接入了CDN的SDK(Software Development Kit)或其他支持双边加速的私有协议,则优化同时在服务器和客户端两侧生效。与单边加速相比,双边加速通常对性能的提升空间更大、更加灵活。在CDN内部,例如L1、L2之间,单边/双边加速同时存在,可灵活切换。而在L2与源站之间,CDN可以基于链路质量探测、动态路由等技术选择一条连接源站最快、最稳定的线路,从而实现回源加速。

CDN还支持扁平化的结构。在此结构中,不再严格区分L1、L2、L3等,而是基于链路质量、节点容量、节点负载等动态选择一条路径。这条路径可以只处于CDN节点间,也可以直达源站。

网络传输优化的重点在三个方面:拥塞控制、传输协议与选路方式。拥塞控制与传输协议互相配合,可以最大化利用链路带宽或最小化传输时延等,而选路可改善链路质量,提升传输能力的上限。阿里云CDN网络传输优化的架构示意图。不同类型的业务对网络传输的需求侧重点不同,比如静态下载类业务需要提升下载速率,而点播、直播类业务需要降低卡顿率。为了对不同业务做有针对性的优化,节点软件会根据配置中心的配置,将业务特征的相关信息下发到传输层,供传输层进行决策。不同节点、不同时间段,链路质量也存在差异,通过链路质量探测等手段,将链路质量的变化及时通知传输层,可使网络传输优化策略更适应多变的网络环境。传输层最终根据业务特征和当前链路质量,从加速策略库中选择最合适的加速策略,从而达到具有针对性优化的效果。加速策略的内容包括拥塞控制算法及其参数、选择传输协议及是否使用动态选路等。而每次传输结束后,将记录相关信息和决策,并记录日志。离线的机器学习平台将分析传输层日志,自动优化加速策略库,从而形成闭环。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1931259.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SymPy,一个可以做数学题的Python库,如何使用SymPy进行微积分计算?

SymPy 是一个 Python 库,用于符号数学。这意味着 SymPy 可以帮助用户执行从基本代数到微积分、方程求解、积分、极限、级数、几何、组合数学、离散数学和量子物理等广泛的数学计算。它允许用户以完全符号化的方式处理数学表达式,而无需将问题转换为数值近…

大模型的“幻觉”克星!被低估的RAG技术

1 RAG与大模型、Prompt、微调的关系 本文主要带大家深入学习一下最近AI领域的重要技术RAG,本文致力于用大白话给大家说明白RAG,但是还是需要一些大模型和微调有关的领域名词有一些基本的了解,大家选择性阅读哦!在进行正文学习之前我们先用一…

Unity Meta Quest 开发:如何在每只手指上添加 Poke 交互

XR 开发社区: SpatialXR社区:完整课程、项目下载、项目孵化宣发、答疑、投融资、专属圈子 找到玩家物体 OVRCameraRig 下的子物体 HandInteractorsRight/Left(分别管理左右手的 Interactor)下的 HandPokeInteractor 子物体&#x…

Java语言程序设计——篇五

数组 概述数组定义实例展示实战演练 二维数组定义数组元素的使用数组初始化器实战演练:矩阵计算 💫不规则二维数组实战演练:杨辉三角形 概述 ⚡️数组是相同数据类型的元素集合。各元素是有先后顺序的,它们在内存中按照这个先后顺…

计算机的错误计算(三十三)

摘要 计算机的错误计算(三十二)展示了 Python的 math库中 exp(x)的计算精度问题。本节讨论 Python 的 torch 库中的 exp(x)的计算精度问题。结果显示:与 math 库中的函数输出值具有同样的错误数字个数。 不妨仍然取(二十八&…

华为云.VPC关联概念与对等连接实践

云计算.华为云 VPC关联概念与对等连接实践 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/q…

使用SpringCloud搭建分布式配置中心

在现代的分布式系统中,配置管理是一个非常重要的组成部分。传统的做法是将配置文件放在每个服务的本地进行配置,这样的做法在规模较小的系统中还能够接受,但是当系统规模逐渐扩大时,配置管理将变得非常困难,容易出错。…

Autosar Dcm配置-0x28服务ComControl-基于ETAS软件

文章目录 前言DcmDcmDsdDcmDspBswMBswMModeRequestPortBswMModeConditionBswMLogicalExpressionBswMActionBswMActionListBswMRule总结前言 0x28服务主要用来控制非诊断报文的通讯,一般在刷写预编程过程中,用来禁止APP的通信报文,可以减少总线负载率,提高刷写成功率。本文…

vue3-tree-org实现带照片的组织架构图

官方文档&#xff1a;vue3-tree-org 显示照片需要注意的地方 使用步骤 下载 npm install vue3-tree-org --save 在main.js中引入 import "vue3-tree-org/lib/vue3-tree-org.css"; import vue3TreeOrg from vue3-tree-org;app.use(vue3TreeOrg) 实现代码 <tem…

【简历】郑州某二本学院:前端秋招简历指导,简历通过率接近于0

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 简历说明 这是一份二本前端同学的校招简历。25届的二本同学求职方向主要是在小公司&#xff0c;但是这个同学他故意把学校放在简历最后&#xff0…

R包:DiagrammeR流程图

介绍 DiagrammeR 依赖于图形描述语言 Graphviz&#xff0c;可以通过 R 包 igraph 和 visNetwork 访问。DiagrammeR 通过将有效的图规范以 DOT 语言的形式传递给 grViz() 函数来输出图。 加载R包 采用DiagrammeRR包&#xff0c;它提供了以下函数&#xff1a; 使用create_grap…

亲子母婴行业媒体邀约宣发资源

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 亲子母婴行业是一个综合性的产业&#xff0c;涉及多个领域&#xff0c;包括儿童食品&#xff0c;儿童玩具&#xff0c;服装&#xff0c;洗护&#xff0c;月子中心&#xff0c;母婴护理&a…

单臂路由组网实验,单臂路由的定义、适用情况、作用

一、定义 单臂路由是指通过在路由器的一个接口上配置许多子接口,从而实现原来相互隔离的不同VLAN之间的互通。 子接口:把路由器上的实际的物理接口划分为多个逻辑上的接口,这些被划分的逻辑接口就是子接口。 二、适用情况 用在没有三层交换机,却要实现不同VLAN之间的互…

怎样恢复删除的视频?简单几步迅速上手!

在短视频时代&#xff0c;视频成为我们生活中不可缺少的一部分。它记录了我们生活中的点点滴滴&#xff0c;承载着许多美好的回忆。如果一不小心删除了重要的视频&#xff0c;那将是一个巨大的缺憾。那我们该怎么恢复删除的视频呢&#xff1f;在电脑删掉的视频还能恢复吗&#…

Java基础笔记(面试题)

一、Tomcat中为什么要使用自定义类加载器 Tomcat中可以放多个Java项目的jar文件&#xff0c;如果每个jar文件中都有一个User的类&#xff0c;那么User类在没有自定义类加载器的情况下是只能加载一次&#xff1b;想要加载多次&#xff0c;只能自定义类加载器 二、JDK、JRE、JVM…

如何实现本地文件存储

文章目录 1. 知识回顾2. 示例代码 我们在上一章回中介绍了"如何实现文件存储"相关的内容&#xff0c;本章回中将继续介绍与此相关的内容.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 知识回顾 我们上一章回中介绍了实现文件存储的三个步骤&#xff0c;不过限…

vue调试工具没有Pinia模块解决办法

修改前&#xff0c;调试工具里面没有Pinia模块 在项目的入口文件mian.js中这样修改 import /assets/main.scss import pinia from /stores/index import { createApp } from vue import App from ./App.vue import router from ./router import elFormRenderer from el-form…

详解 BGE-M3 与 Splade 模型

详解 BGE-M3 与 Splade 模型 本文将探索两种先进的 Embedding 模型——BGE-M3 和 Splade&#xff0c;深入解析它们的设计理念和工作原理。 01. 快速回顾Embedding向量的概念 Embedding 向量或者向量表示&#xff0c;是指在高维向量空间中以数值描述表示对象、概念或实体&am…

使用Python和wxPython创建动态HTML日历生成器

在这个数字化时代,日历仍然是我们日常生活中不可或缺的工具。今天,我们将探讨如何使用Python创建一个动态HTML日历生成器。这个项目不仅实用,还能帮助我们深入理解Python编程、GUI开发和网页生成的相关知识。 项目概述 我们的目标是创建一个应用程序,允许用户选择特定的年份和…

第二证券:电影暑期档持续升温 农机自动驾驶驶入快车道

农机自动驾驶打开驶入快车道 得益于农机补贴、土地流通、高标准农田制造等方针引导&#xff0c;叠加技术突围和用户降本增效的内生需求&#xff0c;我国正处于农业2.0向农业3.0的过渡阶段。其间农机自动驾驶系统是结束农业3.0&#xff08;即自动化&#xff09;的要害并迎来快速…