说说CDN和负载均衡具体是怎么实现的

这篇具有很好参考价值的文章主要介绍了说说CDN和负载均衡具体是怎么实现的。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分析&回答

什么是 CDN

CDN (全称 Content Delivery Network),即内容分发网络。

构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术/

简单来讲,CDN就是根据用户位置分配最近的资源

于是,用户在上网的时候不用直接访问源站,而是访问离他“最近的”一个 CDN 节点,术语叫「边缘节点」,其实就是缓存了源站内容的代理服务器。如下图:

说说CDN和负载均衡具体是怎么实现的,网络原理与编程,负载均衡,网络,服务器

CDN原理分析

在没有应用CDN时,我们使用域名访问某一个站点时的路径为

用户提交域名→浏览器对域名进行解释→DNS 解析得到目的主机的IP地址→根据IP地址访问发出请求→得到请求数据并回复

应用CDN后,DNS 返回的不再是 IP 地址,而是一个CNAME(Canonical Name ) 别名记录,指向CDN的全局负载均衡

CNAME实际上在域名解析的过程中承担了中间人(或者说代理)的角色,这是CDN实现的关键

负载均衡系统

由于没有返回IP地址,于是本地DNS会向负载均衡系统再发送请求 ,则进入到CDN的全局负载均衡系统进行智能调度:

  • 看用户的 IP 地址,查表得知地理位置,找相对最近的边缘节点
  • 看用户所在的运营商网络,找相同网络的边缘节点
  • 检查边缘节点的负载情况,找负载较轻的节点
  • 其他,比如节点的“健康状况”、服务能力、带宽、响应时间等

结合上面的因素,得到最合适的边缘节点,然后把这个节点返回给用户,用户就能够就近访问CDN的缓存代理

整体流程如下图:

说说CDN和负载均衡具体是怎么实现的,网络原理与编程,负载均衡,网络,服务器

缓存代理

缓存系统是 CDN的另一个关键组成部分,缓存系统会有选择地缓存那些最常用的那些资源

其中有两个衡量CDN服务质量的指标:

  • 命中率:用户访问的资源恰好在缓存系统里,可以直接返回给用户,命中次数与所有访问次数之比
  • 回源率:缓存里没有,必须用代理的方式回源站取,回源次数与所有访问次数之比

缓存系统也可以划分出层次,分成一级缓存节点和二级缓存节点。一级缓存配置高一些,直连源站,二级缓存配置低一些,直连用户

回源的时候二级缓存只找一级缓存,一级缓存没有才回源站,可以有效地减少真正的回源

现在的商业 CDN命中率都在 90% 以上,相当于把源站的服务能力放大了 10 倍以上

三、总结

CDN 目的是为了改善互联网的服务质量,通俗一点说其实就是提高访问速度

CDN 构建了全国、全球级别的专网,让用户就近访问专网里的边缘节点,降低了传输延迟,实现了网站加速

通过CDN的负载均衡系统,智能调度边缘节点提供服务,相当于CDN服务的大脑,而缓存系统相当于CDN的心脏,缓存命中直接返回给用户,否则回源

反思&扩展

CDN简单的来说就是存储一些静态文件的一台或多台服务器,通过复制,缓存等方式,将文件保存其中。

1.哪些是静态文件?

css,html,图片,媒体都属于静态文件,也就是说用户发送的请求不会影响静态文件的内容,而jsp,php等文件就不属于静态文件,因为他们的内容会因我们的请求而发生改变。

2.CDN如何实现加速?

通常情况下,我们所要的数据都是从主服务器中获取,但假如我们的主服务器在南方,而访问用户在北方,那么访问速度就会相对变慢,变慢的原因有很多,例如传输距离,运营商,带宽等等因素,而使用CDN技术的话,我们会将CDN节点分布在各地,当用户发送请求到达服务器时,服务器会根据用户的区域信息,为用户分配最近的CDN服务器。

3.CDN数据从哪里来?

复制,缓存,CDN服务器可以在用户请求后缓存文件,也可以主动抓取主服务器内容。

喵呜面试助手:一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!文章来源地址https://www.toymoban.com/news/detail-694255.html

到了这里,关于说说CDN和负载均衡具体是怎么实现的的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络面试(8)】防火墙原理、正向代理、反向代理、缓存服务器、负载均衡和内容分发服务器

     接上一篇:【网络面试必问(7)】聊聊集线器、交换机和路由器  作为一个程序员,其实很少去了解http请求消息在到达服务器之前,所经过的众多组件的,今天借着机会聊一聊标题中提到的正向代理、反向代理、缓存服务器、负载均衡和内容分发服务器等内容。 1.1 部署

    2024年02月22日
    浏览(31)
  • springcloud 中RestTemplate 是怎么和 ribbon整合,实现负载均衡的?源码分析

    RestTemplate 内置了一个 ClientHttpRequestInterceptor ,这个是一个拦截器操作,我们可以在请求的前后做一些事情。然后我们看一下这个类,这个类里面 有一个 intercept 方法。我们看下这个实现类,里面有一个 LoadBalancerInterceptor 实现类。 我们来看 LoadBalancerInterceptor 实现类。 然后我

    2024年02月09日
    浏览(25)
  • 实现高效Web应用:负载均衡SLB和弹性伸缩AS的原理与实践

    在前面的文章中,我们了解了负载均衡SLB和弹性伸缩AS的基本概念和应用场景。在本篇文章中,我们将深入探讨这些技术的特点,以及它们在实际应用中的优势和局限性。 一、负载均衡SLB的特点 负载均衡SLB是一种基于网络的负载均衡技术。它通过将网络流量分配到多个服务器

    2024年02月06日
    浏览(27)
  • 云计算:从基础架构原理到最佳实践之四:云计算环境中负载均衡的实现方法

    作者:禅与计算机程序设计艺术 云计算(Cloud Computing)作为一种新的经济发展方式,颠覆了传统IT部门所承担的物理服务器、存储设备等基础设施的运营管理工作。借助网络的快速发展,云计算不断吸纳新型应用软件、数据服务等资源,迅速扩充服务器资源。同时,也催生了

    2024年02月08日
    浏览(23)
  • Kong工作原理 - 负载均衡 - 负载均衡算法

    负载均衡器支持以下负载均衡算法: 1. 轮询(Round-robin) 2. 一致性哈希(Consistent Hashing) 3. 最少连接(Least Connections) 4. 延迟(Latency) 这些算法仅在使用upstream实体时可用,详见高级负载均衡。 注意:对于所有这些算法,重要的是要了解如何设置每个后端的权重和端口。

    2024年01月25日
    浏览(26)
  • Kong工作原理 - 负载均衡 - 高级负载均衡

    通过upstream实体可用高级负载均衡算法。 使用这些负载均衡器时,后端服务的添加和删除将由Kong处理,不需要进行DNS更新。Kong将充当服务注册表的角色。 通过上游和目标实体进行负载均衡器的配置。 upstream:一个“虚拟主机名”,可以在服务主机字段中使用,例如,一个名

    2024年01月25日
    浏览(32)
  • Kong工作原理 - 负载均衡 - 基于DNS的负载均衡

    Kong提供多种请求负载均衡到多个后端服务的方式:默认的基于DNS的方法,以及使用Upstream实体的一组高级负载均衡算法。 默认情况下启用DNS负载均衡器,仅限于循环调度负载均衡。Upstream实体还具有健康检查和断路器功能,除了更高级的算法,如最小连接数、一致性哈希和最

    2024年01月25日
    浏览(31)
  • 负载均衡:LVS 负载调度原理

    LVS 官方中文站点参考资料: http://www.linuxvirtualserver.org/zh/index.html 只有 LVS 实现了二层负载均衡 通过 LVS 的 DR 模式来实现的 数据包走向原理说明: 客户端请求数据包报文源地址和目标地址:CIP、VIP 负载均衡将客户端请求数据包报文的源 MAC 地址改为自己 DIP 的 MAC 地址,目前

    2024年02月08日
    浏览(30)
  • nginx怎么做负载均衡

    Nginx 是一个高性能的开源反向代理服务器,可以用于实现负载均衡。负载均衡指的是将用户请求平均分配给多个服务器,以提高整体系统性能和可靠性。下面是一个详细介绍如何使用 Nginx 实现负载均衡的步骤: 步骤 1:安装 Nginx 首先,需要安装 Nginx。具体的安装方法会根据

    2024年02月16日
    浏览(23)
  • 负载均衡的原理及算法

    负载均衡(Load Balancing)是指在计算机网络中将工作负载(如请求、数据流量等)分配给多个计算资源(如服务器、网络连接等),以实现资源利用的均衡和性能优化。其原理和算法如下: 原理: 请求分发 :负载均衡器接收到来自客户端的请求后,根据预设的策略将请求分

    2024年04月17日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包