新闻动态

高并发架构:高并发架构的cdn知识介绍

发布日期:2021-01-01 21:46 | 文章来源:YINGSOO

  【温馨提醒】文章内容仅供参考,海外服务器租用\托管方案,请咨询YINGSOO客服,24小时免费电话400-630-3752

  【热门主机】美国云服务器托管云服务器 香港柬埔寨云服务器推荐德国云服务器

  【热搜问题】境外服务器和境内服务器的区别有哪些?区别可大了

高并发架构

  对一次网络请求过程的了解程度,一是展现你的专业知识;二是深刻的理解,让你在大型网站架构中做出更适合、可靠的架构。而dns是这一切的出发点,本文结合一张常用架构图,来描述一下这个过程。

  部署架构

  大型的web服务,我们的部署架构一般如下图。先上图再解释。

  这里来解释下,为什么要这样架构。 首先客户端的请求会通过 dns 获取到对应的服务器ip(实际上是Lb的ip地址),这一层会有 dns的负载均衡,并且如果是静态站资源会进入到cdn,这里dns与cdn如何完成接棒的过程,后面会详细解释。 当请求到达Lb层的时候(应用层协议是Http协议),这一层又会做一次负载均衡(可能用LVs或者nginx做)。这里我们有两种不同的处理方式,一条路径会进入到代理集群,一条路径直接进入到应用集群。这是为什么?

  Lb到代理集群

  通过最顶层的Lb负责均衡后到达代理机器,这里不直接进入到应用集群,还要搞一层代理的目的主要是方便我们在代理集群进行各种高级(骚)操作。

  比如:请求日志收集,自定义缓存,自定义的负载均衡,自定义的路由规则制定(跨机房,路由分组)

  Lb到应用集群

  上面到代理层有那么多好处,为什么还有绕过代理层这条路径存在呢?这主要是针对大流量服务。因为代理层因为有很多额外的操作,导致响应会变长,路径增加,到下一个集群多了一次网络传输往返。

  所以,一般针对大流量服务,为了防止代理被打满,响应更快,会直接在外网Lb上进行负载到应用集群。

  通过上面的分割后,最终都会到达应用集群,每一台机器上我们会部署一台 nginx 来按照域名转到对应服务,当然这里完全也可以不是 nginx,比如微服务,这里可能是一个 sidecard 代理。这里主要是为了便于说明我们后面全部都是当成nginx。服务调用 db cache 等,都是通过域名,这是为了负载均衡,请求时,会通过内网dns服务,完成域名解析,然后拿到内网的 Lb 的ip。然后再这里进行内网的负载均衡,会根据域名的端口来检查你是写操作、还是读操作返回ip。常规一点会保证是单点写入,多点读取。来完成数据一致性的保障。

  整个大体过程如此,接下来我们详细说一下 dns与cdn相关的工作原理。

  dns如何实现ip查找

  为了后面说清楚cdn,这里先介绍dns的解析过程。当然此类文章网络上已经极多。但是我还是想按照我的理解来说一下dns是如何工作的。

  在整个dns过程中有四个重要概念,下面解释下。

  dns Resolver - 递归解析器,主要是接收客户端发出的域名解析请求,并发送 dns query 查询请求。对于客户端来说它不需要任何操劳,等待 dns Resolver 告诉自己域名转ip的结果就好。

  Root server - 这是转换ip执行的第一步查询,根服务器并不会保存具体的域名ip映射信息。它就像一个索引服务器,会告诉你下一步该去那台 tLd server 查询。

  tLd server - 这是顶级域名服务器,是执行ip查询的第二步,这里会告诉 dns Resolver 权威域名服务器的地址。

  Authoriative server - 权威域名服务器就是包含了完整的机器名的域名,例如:www.example.com ,在这台机器上保存了这个具体域名对应的ip地址。

  下面根据图中的十个步骤说一下每一步都在干嘛。

  1.一个用户在浏览器输入了:example.com,这时会产生一个 dns 查询,从而进入到 dns Resolver中;

  2.Resolver 会进入到 root server 进行查询;

  3.root server 返回了 tLd server 的地址,查询请求转向顶级域名服务,这里是 .com 服务器。

  4.递归解析器向 .com 服务器发送一个请求;

  5.tLd server 收到请求后会返回 example.com 权威服务器的地址;

  6.递归解析器又发了一个向权威服务器查询的请求,至此权威服务器查询自己的映射表拿到ip;

  7.返回查询到的ip给了 dns Resolver;

  8.dns Resolver返回ip给浏览器,浏览器将会用这个ip来建立连接,发起请求;

  9.客户端通过这个ip地址,发起一个 Http 请求;

  10.服务器解析请求,并返回数据到浏览器。

  这里需要补充一点是,上面每一步其实都有dns缓存的设计。比如:

  .浏览器会缓存dns的结果,(chrome://net-internals/#dns)

  .操作系统的dns模块会缓存

  .后面的每一层级也都有缓存

  所以很多时候,我们的解析过程并不是要顺序执行完这8个步骤。这就跟我们自己开发的应用服务一样,层层缓存,有缓存就读取缓存结果,缓存实现就执行完整流程。

  dns的解析分类

  dn[菲律宾云服务器]s有多种解析记录可以设置,我这里介绍三个很常用的记录。

  A记录 - 被称为ip指向,用户设置自己域名指到对应的ip主机上。如果想要利用A记录实现负载均衡需要主机商的支持。

  cnAme记录 - 它相当于为一个主机名设置一个别名,而且该记录不能直接使用ip,只能是另一个主机的别名。cdn主要就是利用该记录来完成的。如果有A记录与cnAme记录同时存在,A记录会被优先使用,换句话说cnAme记录不会生效。

  ns记录 - 用来设置一个域名的权威服务器路径,该记录只会对子域名生效。这个地方可以设置ip也可以设置另外一个权威服务器的域名。需要重点指出的是它的优先级高于A记录,并且它在dns解析过程中,会跳过2,3,4,5步。

  了解完了dns的步骤,接下来就进入到cdn部分的分析。

  cdn访问加速度

  什么是cdn呢?中文翻译过来就是内容分发网络。看张图。

  没有cdn的时候,不管哪里的用户访问我们的站点,都需要到我们数据中心来获取数据(单纯的dns过程)。而有了cdn之后,用户根据自己的地理位置会选择距离自己最近的缓存数据中心来获取数据。不会每次都到源站(应用服务器)来获取数据。为了理解这个过程,我们是如果在完整的dns过程中,实现cdn的呢?

  接下来我们需要回答两个问题。

  1.cdn带来了什么好处。

  2.如何解析到cdn。

  cdn带来的好处

  了解一个东西之前最好知道它能干什么,带来的好处是什么。然后我们再去看它的运行原理。对于cdn有以下几个方面的好处。

  提高页面加载速度

  这是最显而易见的一个优势,通过上面的图,大家也可以直观感受下,用户访问距离自己最近的机器,速度肯定是最快的。并且网站的加载速度越快那么用户体验越优秀,你的网站更会受到对应用户的喜爱。至于如何实现就近访问的,后面原理部分介绍。

  增加内容的冗余

  cdn是一个典型的分布式架构,它通过增加数据的冗余,一方面保障在大流量面前有多台服务器能够提供相同的数据;另一方面当部分机器出现故障时,可以进行故障转移。

  节省带宽

  如果大家自己买过云服务就知道,带宽每增加一点价格就飙升。使用cdn后,由于流量被分流了,那么原机器带宽要求自然就降低了。当然带宽费用降低了,你还需要为cdn付费。

  保障服务安全

  cdn可防止的攻击:ddos攻击,该攻击就是通过巨大流量打满你的带宽,让你丧失服务能力。那么由于cdn的存在,它将巨大的流量进行了分流。那么源站压力自然小了。这其实也是高并发需要考虑的。

  cdn目前不仅仅是只能缓存静态的HtmL、css、Js、Video,现在还有能够缓存动态接口内容的cdn,这为我们在架构高并发的服务时,提供了更多的手段进行选择。

  cdn工作原理

  在介绍dns的时候,介绍了客户端是如何获取到ip地址的。那么有了cdn之后,这个过程该怎么处理呢?

  cdn其实就是放在应用服务器与用户之间的一层缓存。所以如果使用dns的时候,返回给客户端的是cdn机器的ip而不是应用的ip,那么自然就走到了cdn机器上。

  为了实现上述目的,我们会为该域名配置一个 cnAme(大家注意上面提到的cnAme与A记录的优先[韩国云主机]级),那么这个cnAme是最终如何解析到对应的cdn机器呢?其实流程与dns解析是一样的。当发现一个域名设置了cnAme时,dns解析器会继续解析这个cnAme别名(其实就是另一个域名)。对这个cnAme解析的时候会用到全局负载dns解析,它会根据访问者的地理位置信息返回对应的ip(cdn机器的ip)。因此客户端实际上得到的是距离它最近的cdn机器的ip地址。

  如果说用户访问cdn,但是cdn上没有对应内容会怎么办?此时cdn机器其实会根据自身专用的dns解析服务,根据域名得到源站的ip,然后向源站发送请求获取数据,并把这些数据缓存到本地,方便后续使用;同时返回本次结果,完成本次请求的访问。

  需要说一下的是,cdn其实也是分层的。距离用户最近的称之为边缘节点。而cdn的中心服务器集群被称为二级缓存。在上面就是应用部署的源站。一般边缘节点没数据就去找二级缓存,二级缓存没数据就去找源站(被称为回源)。

  小结

  关于 dns 的过程,文中是以流程介绍为主,至于更细节的依赖协议、传输过程都忽略了。 关于cdn也是我们经常用到的性能提升手段,后续要写的秒杀相关文章,就会用到它来提升性能。特别是cdn的分布式设计、解析过程在我们平常设计应用架构时非常有参考意义。(来源微信公众号:大愚talk)

  

  免备案美国服务器的用途有哪些

  很多使用过美国服务器的用户可能会觉得美国距离大陆距离远,美国主机在访问速度上可能会有点慢,除了进行外贸网站的搭建外,做其他行业网站搭建好像没那么好用。但事实上不是这样的哦,美国服务器适用的范围还是比较广泛的哦,例如游戏平台开发,电商平台等都是很适合的。

  一、网络业务拓展

  美国服务器是目前海外服务器里比较主流的服务器之一,用户选择美国服务器除了用来做为建站使用外,还有用来进行虚拟化技术处理分割为虚拟空间,可以让业务更好的处理。

  二、电子商务平台

  美国主机是不需要备案就可以使用的,并且在性价比上还是比较高的,中小型的电商行业前期都会比较在意成本的问题,通过租用免备案的美国服务器,这样的话不仅可以降低成本,也可以同时拓展好国内外的业务。

  三、游戏平台

  有部分私服和棋牌类游戏是无法通过网络备案的,将[国外服务器]美国免备案服务器作为在线游戏服务器也是个不错的选择。

  四、数据存储平台

  美国主机在硬件配置上还是比较高的,安全性能上也不错,价格上也不会太高,用于做中小企业的数据存储平台服务器也是不错的。

  当然除了以上四种用途外,免备案的美国主机还有更多的使用优势,例如美国机房是设有直连[国外云服务器哪家好]大陆的CN2线路的,在带宽上大多都是采用的国际带宽等。这一系列的优势,都是美国服务器成为海外热门服务器的原因哦。

  YINGSOO热线:400-630-3752

  热门文章:【英国云主机在配置上该如何选择】【衡阳高防服务器】【vps海外服务器】【香港游戏测试服务器怎么样】【国内免备案服务器是怎么一回事】【外贸软件服务器如何选择】【新加坡游戏服务器】【IDC行情】【便宜高防服务器】【湖北武钢大数据】【云服务器有什么好处】【游戏行业对台湾服务器的要求有哪些】【传奇服务器端】【云计算在医疗行业的六大重要优势】【站长主机】【ip租用】【Datanode节点】【站群怎么做看完别再说你不会做站群】【跨境电商】【YINGSOO云的高可用性指什么】【传奇手游gm服务器】【韩国高速服务器租用技巧】【维护香港服务器的方法】【云主机试用三天】【物理机优惠】【特价云服务器】【CC高防服务器】【高防主机是什么】【100M大带宽】【共享虚拟主机不利于seo吗

  YINGSOO韩国主机租用价格3天免费试用,注册享特惠!

  韩国主机租用价格控制面板自主管理,5分钟交付,KT高品质机房,平均延迟低至80ms,2019年韩国主机租用价格销量再度破表,1200家企业共同选择,高达95%的续约率印证YINGSOO品质

  https://www.yingsoo.com/products/cloud-kr.html

  YINGSOO美国主机30g_免费CC防御流量_无需备案

  美国主机30g美国vps超宽国际出口 , 一手资源 , 重装系统 , 10MB独享带宽 ,在线有重启 , 无极网络 , 高速稳定,年付8.3折优惠

  https://www.yingsoo.com/products/cloud-us.html

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部