腾讯终面: “你懂CDN吗?详细说说”

面试官:“你知道 CDN 的是怎么知道找到距离你最近的服务器,然后把资源分配给你的吗?”


其实我在这个时候不太清楚,就凭印象想了一下之前学的东西,半猜半问的回答的:


“是通过一个可以调度距离的服务器来做的?”


面试官说不对,然后我灵机一动,从五层模型的角度聊了一下这个事情:


五层模型


物理层和数据链路层我就不聊了,直接从最核心的网络层开始聊


网络层:CDN通过智能DNS系统在网络层工作,将用户的请求重定向到最佳的边缘节点,从而减少了数据包需要穿越的网络距离,提高了传输效率。


传输层:。CDN在传输层通过使用像TCP(传输控制协议)这样的协议来确保数据的可靠传输。此外,CDN还涉及到会话的优化,例如通过压缩技术减少传输数据的大小,或者通过会话复用来提高效率。


应用层:CDN在应用层的作用最为明显,因为它直接处理用户请求的内容,如Web页面、图片、视频等。CDN通过缓存这些内容到边缘节点来减少延迟,提高用户访问速度,并提供负载均衡和故障转移能力。


IP-DNS-GSLB


通过这一段描述我们可以看到其实 CDN 的核心在于网络层这里,也就是“将用户的请求重定向到最佳的边缘节点”,我们展开聊聊:


我们首先会在网络层进行 DNS 解析,在解析的过程中判断这个域名有没有使用 CDN 服务,如果使用了,我们会有一个 GSLB 系统来处理这个事情,那么这个系统是啥,原理是啥呢?我们举个例子来说:


当用户发起对某个域名的请求时,该请求首先被发送到本地DNS服务器(Local DNS)。本地DNS服务器会向权威DNS服务器查询域名的IP地址。在GSLB的环境下,权威DNS服务器实际上是被GSLB系统所接管,它不再仅仅返回一个静态IP地址,而是根据一系列策略来决定返回哪个IP地址。


(在 GSLB 前面那一段是不是很熟悉?没错,这就是 DNS 解析的过程,在这个过程中做了这个事情。)


我在这里简单列出几个可能的策略:


地理位置:GSLB会根据用户的地理位置信息,选择最近的服务器节点以减少延迟。


服务器健康状态:GSLB会检查各个服务器节点的健康状态,避免将请求分配到故障或性能低下的服务器。


负载情况:GSLB会考虑每个服务器节点的当前负载,将请求分配到负载较轻的服务器以平衡负载。


网络拥塞情况:GSLB会监测网络路径的拥塞情况,选择最佳的路由以避免网络瓶颈。
全部评论
硬控面试官几分钟
13 回复 分享
发布于 2024-09-25 18:33 安徽
m
1 回复 分享
发布于 2024-09-25 21:39 陕西
GSLB怎么接管权威dns服务器的
1 回复 分享
发布于 2024-09-25 23:31 广西
不是通过dns解析到不同的ip地址吗
点赞 回复 分享
发布于 2024-11-13 15:37 湖北

相关推荐

2024-12-26 18:26
东华大学 Java
一面:1.做性格测试2.逻辑推理题(20min)一堆逻辑题,还有概率题,物理题,还有考公那种图形推理题(人都懵了,感觉不像是面Java来了)3.Java测试卷(选择,填空,判断,问答,程序题)选择,填空和判断都是一些Java的基础知识,关键字,基本数据类型之类的问答题主要是八股的考察,1.抽象类和接口的区别;2.HashMap和HashTable的区别;3.static关键字的作用;4.用thread和runnable分别实现多线程代码题:1.实现阶乘的相加;2.用inputStream读取文件(只会写了读,基础代码忘了😭);3.自定义类和方法二面(感觉全程被吊打)1.自我介绍2.女面试官问高考成绩,本科学校,本科专业,考研信息,考研成绩,考研专业,毕业条件;为什么考上海;考没考虑过实习租房的成本3.男面试官拷打项目项目一问做了哪些业务,一些业务的具体实现,websocket通信原理(不会),有没有实现分角色登录(无),怎么判断一些热点数据,死锁遇到过(只理论学过),产生并发问题的底层原因。项目二做了哪些业务,一些业务的实现,怎么进行SQL优化;现在建立一个索引,会对哪些数据的哪些字段建立索引;线程池的原理及参数(只知道7个参数);了不了解设计模式(不了解);为什么要使用lua脚本;对热点数据设置的过期时间和清除策略;如何保证缓存数据与数据库数据一致;还需要怎么进行提高性能;大量热点数据失效怎么办;项目中有哪些并发安全问题,怎么解决的;MQ中一些消息重复消费怎么办(不会);如何将这个项目拆分成微服务项目;nacos的作用及其底层原理(底层原理没了解过);网关的作用及原理(原理没了解过,只是会用);OpenFeign如何实现远程调用的(只是会用😭);JMeter在项目中的使用;4.女面试官:你性格的3个优缺点;你认为你的优势在哪;为什么选择Java后端;未来的职业规划;考没考虑过测试(另外一个面试官告诉我测试需要理解很多原理,不是简单的点一下);#Java# #面试# #凉经#
查看6道真题和解析
点赞 评论 收藏
分享
评论
28
84
分享

创作者周榜

更多
牛客网
牛客企业服务