关于CDN加速和负载均衡技术的讨论

news2024/11/23 15:49:27

一:前言

       相信学习到信息收集模块的小伙伴在学习Web信息收集中查找真实IP相关知识点时,必定接触到一个概念:CDN加速。那么什么是CDN?企业为什么要用CDN?就是为了隐藏自己的真实IP?显然不是。经济学中有一个概念叫机会成本,使用CDN加速是需要成本的,所以企业必定不会为了隐藏自己的真实IP就动用如此高价且效用不高的技术。

         当然,也有不少伙伴也听过另外一个概念:负载均衡技术。两个概念都接触过的小伙伴一定会被它们搞得一头雾水:难道CDN和负载均衡不是一个技术吗?它们解决的问题不都是一样的吗?毕竟它们都可以解决用户访问量大、高并发、服务器资源紧张、网络时延等问题。带着这样的疑问,我们通过这篇文章一起来讨论CDN加速和负载均衡技术。

二:CDN加速和负载均衡技术

(一)CDN加速技术

        CDN(Content Delivery Network)中文称为内容分发网络,其本质就是将源站部分内容缓存在终端用户附近服务器上的一个技术。CDN技术是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。这段概念性的解释用生活中的例子可以这样理解:假设用户在深圳用京东APP下单了一款产品,位于北京的京东总部收到订单信息。如果从北京总仓发出产品可能需要3天才能到达用户手中,这样用户体验就会较差。为了解决这个问题,京东就在深圳或其他地区建立边缘仓库。在用户下单产品之后,服务器就开始利用算法查找距离用户最近的边缘仓库是否有用户下单的产品,如果有就直接从距离用户最近的边缘仓库发货,此时产品到用户手中可能只需要1天。若距离用户最近的几个边缘仓库都没有该产品,那服务器就会自动进行异地仓调货或是直接北京总仓发货。

        CDN技术是一种利用分布式节点在全球范围内缓存和分发静态内容的技术。CDN通过将静态内容(如图片、视频、脚本文件等)存储在离用户更近的服务器上,从而提供更快的下载速度和更低的延迟。用户访问网站时,会从最接近的CDN节点获取内容,而不是直接从源服务器上获取,从而减轻了源服务器的负载和网络压力。简单而言就是在各大CDN节点服务器通过复制、缓存等方式存储一些静态文件(css,html,图片,媒体文件等),若用户距离源服务器距离较远,且从源服务器向用户传输请求内容可能会因为信道传输距离,运营商,带宽等因素造成时延,导致用户体验较差。而使用CDN技术可以让用户就近请求内容,快速响应,提升用户体验。

              

(二)负载均衡技术

        负载均衡(Load Balance)是一种在高流量或高负载环境下分发网络请求的技术。它的主要目的是将请求均匀地分散到多个服务器或计算资源上,以确保每个服务器的负载相对平衡。通过负载均衡,可以提高系统的吞吐量和响应速度,并防止单个服务器因高负载而崩溃或过载。负载均衡是由多台服务器以对称的方式组成一个服务器集群,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。

        用现实中的例子可以这样理解:前段时间淄博烧烤火爆全国,一时间大量的游客涌入淄博。为了解决人流大量涌入和接待能力之间的矛盾,当地街道实行了街道功能划分的办法【此处为笔者胡诌,淄博当时并无此政策,此处笔者只为讲解技术原理】。既1街道全部为羊肉烧烤区、2街道为牛肉烧烤区、3街道为XX烧烤区,以此类推。当游客在下高速路口时根据游客的需求,由街道功能调配系统引导游客去1街道还是2街道抑或其他街道,这样就解决了游客在某个街道扎堆,导致街道拥堵的问题了。

         负载均衡技术就是通过某种负载分担技术(负载均衡算法:轮询、加权轮询、最小连接数等等),将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡技术的本质就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行。

      

三:总结

        负载均衡技术主要关注于在一个地理区域内将请求分发到多个后端服务器上,以提高性能和可靠性。而CDN加速技术主要是关注于全球范围内将静态内容缓存和分发到用户更近的节点,以提供更快的下载速度和减轻源服务器的负载。

        在实际的应用中,负载均衡技术和CDN加速技术是可以结合使用的,实现优势互补,协同解决服务器访问负载的问题以进一步优化网络性能和增强用户体验。

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

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

相关文章

linux17 线程安全 线程同步

1、线程安全: 多线程程序无论调度顺序如何,都能保证程序 的正确性,就说该程序处于线程安全的状态 1)、同步 2)、线程安全函数//有的函数不适合多线程使用,是函数自身的原因。 2、线程安全函数 1&#…

java-垃圾回收与算法

垃圾回收与算法 1. 如何确定垃圾 1. 引用计数法 在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用&…

【Freertos基础入门】任务调度

文章目录 前言对于前面博客的总结一、任务调度算法是什么?1.调度算法是什么以及freertos的调度算法2.抢占式优先级调度3.时间片轮转调度 二、配置调度算法总结 前言 本系列基于stm32系列单片机来使用freerots 任务管理是实时操作系统(RTOS)…

VS2015+mysql5.7升级到VS2019+mysql-8.0.34

本来一开始是安装的vs2022社区版,结果没找到mysql-for-visualstudio对应的2022的版本。 原来:VS2015mysql5.7 安装的插件: mysql-for-visualstudio-2.0.5.msi mysql-connector-net-6.10.8.msi 升级后:VS2019mysql-8.0.34 安…

深入理解linux内核--块设备驱动程序

块设备的处理 块设备驱动程序上的每个操作都涉及很多内核组件;其中最重要的一些如图14-1所示。 例如,我们假设一个进程在某个磁盘文件上发出一个read()系统调用 ——我们将会看到处理write请求本质上采用同样的方式。 下面是内核对进程请求给予回应的一…

FPGA芯片IO口上下拉电阻的使用

FPGA芯片IO口上下拉电阻的使用 为什么要设置上下拉电阻一、如何设置下拉电阻二、如何设置上拉电阻为什么要设置上下拉电阻 这里以高云FPGA的GW1N-UV2QN48C6/I5来举例,这个芯片的上电默认初始化阶段,引脚是弱上来模式,且模式固定不能通过软件的配置来改变。如下图所示: 上…

Openwrt指定延迟脚本

在某些情况下,我们需要对指定网络接口指定延迟,以达到我们想要实验的效果延迟。 脚本如下: #!/bin/bash # #初始化 tc qdisc del dev br-lan root echo "1. 添加延迟规则 2. 删除延迟规则" read -p "请选择操作:&q…

素数线性筛法 → 欧拉筛

【题目来源】https://www.acwing.com/problem/content/870/【题目描述】 给定一个正整数 n,请你求出 1∼n 中质数的个数。【输入格式】 共一行,包含整数 n。【输出格式】 共一行,包含一个整数,表示 1∼n 中质数的个数。【数据范围…

【数字实验室】时钟切换

大部分开发者使用 BUFGCTRL 或 BUFGMUX进行时钟切换,它们在时钟切换上可以提供无毛刺输出。然而,了解所涉及的原理是有好处的。 当然,无论我们在同步逻辑中使用哪种技术,重要的是要确保在进行时钟切换时输出上没有毛刺。任何故障都…

无涯教程-Perl - times函数

描述 此函数返回一个四元素列表,为当前进程及其子进程提供用户,系统,子进程和子系统时间。 语法 以下是此函数的简单语法- times返回值 此函数返回ARRAY,($usertime,$systemtime,$childsystem,$childuser) 例 以下是显示其基本用法的示例代码- #!/usr/bin/perl -w($use…

一、ls 标准输出时出现乱码符号及解决办法

问题描述:采用 QSSh 登录远程主机时,执行 ls 指令,标准输出中出现乱码符号 如下,在成功 SSH 到远程主机后,执行 ls 指令,标准输出中出现一堆不认识的符号。 从标准输出来看,英文和中文并没有乱…

安科瑞无线测温产品在浙江某半导体项目的应用-安科瑞黄安南

摘 要:半导体被誉为“制造业的大脑”,在关系国家安全和国民经济命脉的主要行业和关键领域占据支配地位,是国民经济的重要支柱。随着数字技术的发展和数字经济在国民经济中所占比重越来越高,半导体产业的重要性还会进一步提升。安全…

文心一言 VS 讯飞星火 VS chatgpt (77)-- 算法导论7.3 2题

二、如果用go语言,在 RANDOMIZED-QUICKSORT 的运行过程中,在最坏情况下,随机数生成器 RANDOM 被调用了多少次?在最好情况下呢?以θ符号的形式给出你的答案? 文心一言: 在 RANDOMIZED-QUICKSORT 的运行过程中,最坏…

使用贝塞尔曲线算法制作曲线

一阶贝塞尔曲线 使用两个点绘制线段 p3p1(p2-p1)*t p1:起点;p2:终点;t:0-1;p3:线段L12上的点 两个点和t的变化(0-1)可得到一条线段 二阶贝塞尔曲线 使用三个点绘制曲线 p12p1(p2-p1)*t p23p2(p3-p2)*t p123p12(p23-p12)*t p12是线段L12上的点, p23是线段L23上的…

android:绘图 (android.graphics包)

android:绘图 View:组件,理解为画布 Drawable:所有可见对象的描述,理解为:素材类 Bitmap:图片类 Canvas:画笔 Paint:画笔样式与颜色、特效的集合 近期很多网友对Android用户界面的设计表示很感…

Lnton羚通关于如何解决nanoPC-T4 upgrade报错问题?

nanoPC-T4 在 ​​# sudo apt update 和 sudo apt upgrade​​升级或安装软件 ​​sudo apt install xxx​​时遇到以下问题:​​Failed to set up interface with /etc/hostapd/​ Setting up hostapd (2:2.6-15ubuntu2.8) ... Job for hostapd.service failed be…

学习 Linux 系统路线图

在计算机科学领域,Linux 操作系统以其稳定性、灵活性和卓越性能而受到广泛欢迎。要真正掌握 Linux 系统,我们需要深入了解其关键组成部分,包括系统、内存、进程、网络和存储等模块。让我们深入探索这些模块,以建立起对 Linux 系统…

【轻量级神经网络】ShuffleNetv1-2详解

文章目录 1、ShuffleNetV11.1、分组卷积1.2、channel shuffle1.3、ShuffleNet基本单元1.4、整体结构 2、ShuffleNetV22.1、基本单元2.2、整体结构 1、ShuffleNetV1 1.1、分组卷积 Group convolution是将输入层的不同特征图进行分组,然后采用不同的卷积核再对各个组…

KVM配置使用ovs网桥

KVM配置使用ovs网桥 1、安装openvswitch 2、启动服务 3、配置ovs 重启网络服务 systemctl restart network 4、 KVM配置使用ovs网桥 配置生效:virsh net-define br0.xml virsh net-start bro virsh net-autostart br0 5、虚…

怎么实现技术评卷时间0投入的?(上)

01 痛苦的技术问答题评审 指针走到了九点,凝视着时钟的技术招聘官Jasmine从昏沉中回到现实,她将咖啡连同叹息一口抿了下去,并端正坐在电脑前。又是一天的评卷日…… 技术招聘已持续数周,公司筛选出了100位嵌入式工程师候选人的技…