京东实习cdn学习

1.什么是cdn?

cdn全称content Delivery Network,即内容分发网络,在用户和我们的服务器之间加一个缓存机制,通过这个缓存机制动态获取IP地址根据地理位置,让用户到最近的服务器访问。

cdn是一组分布在多个不同的地理位置的WEB服务器,用于更加有效的向用户发布内容,在优化性能时,会根据距离的远近来选择 。

CDN系统能实时的根据网络流量和各节点的连接,负载状况及用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上,其目的是使用户能就近的获取请求数据,解决网络拥堵,提高访问速度,解决由于网络带宽小,用户访问量大,网点分布不均等原因导致的访问速度慢的问题。

CDN部署在网络运营商的机房,这些运营商又是终端用户网络的提供商,因此用户请求的第一跳就到达CDN服务器,当CDN服务器中缓存有用户请求的数据时,就可以从CDN直接返回给浏览器,因此就可以提高访问速度。

ps:这就造成了一个很有意思的现象,客户(京东现在有头条小米虎牙等)使用我的cdn,客户是甲方(爸爸),我们是乙方,按照关系来说,我们与运营商之间,我们是甲方,运营商是乙方,但是运营商的国企属性(有问题了,联系运营商,运营商说我们6点下班了,有问题明天再说),你懂的,我们就同时有了两个甲方(类甲方)爸爸。

2.为什么要用cdn?

举个例子的话,如果你尝试搭建了一个网站,那么用户来访问这个网站的话,势必要到你的服务器上来获取数据(JavaScript脚本,css样式表,图片,图标,Flash等静态资源文件(不包括html页面)),这就会造成两个问题:1.如果请求太多,可能会导致服务器的宕机。2.直接来服务器访问的话,势必也会暴漏真实ip,也就有一系列安全的问题,比如ddos攻击等

3.cdn的工作原理

  1. 用户向浏览器提供需要访问的域名;
  2. 浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际的IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,使用的全局负载均衡DNS解析。如根据地理位置信息解析对应的IP地址,使得用户能就近访问;
  3. 此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的ip地址之后,向缓存服务器发出访问请求;
  4. 缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
  5. 缓存服务器从实际IP地址得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据放回给客户端,完成数据服务过程;
  6. 客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。

4.一些常用的概念

  • DNS:Domain Name System

            Cname:别名
            A记录:IP地址

  • 边缘节点(pop点):分布在各地各运营商,缓存源站内容的服务器集群
  • 二级源:pop点的上层节点,pop点的源站
  • 源站:用户网站的真正地址(ip或域名)
  • 区域、运营商:北京联通、上海电信

5.cdn的指标

1.通用指标

带宽、流量、命中率、状态码、成功率、回源率

2.业务指标

3.视频、直播
卡顿率、首播时间
4.下载
下载速度、成功率
5.图片小文件
总下载时间、DNS时间、首包时间、建连时间

6.ATS简介

Apache Traffic Server(ATS):有时候也叫TS,是一种高性能Web代理缓存,原理是不去后端真实服务器(RS)获取数据,而是通过在网络边缘节点获取数据缓存,来提高网络效率和性能。这使网络缓存内容在物理距离上离最终用户更近,同时实现更快的交付和更少的带宽使用。Traffic Server旨在通过最大化现有和可用带宽来改善企业、Internet服务提供商(ISP)、骨干提供商和大型Intranet的内容交付。

7.ATS的功能

ATS可以作为Web代理缓存服务器、反向代理服务器、内容缓存服务器等。

  • ATS的web代理缓存服务器功能

作为Web代理缓存,Traffic Server会在这些请求前往目标Web服务器(源服务器)时接收用户对Web内容的请
求。

  • 如果Traffic Server包含所请求的内容,则它直接提供内容。
  • 如果请求的内容在缓存中不可用或不存在,则Traffic Server充当代理,它代替用户从源服务器获取内容,并保留副本以满足将来的请求。

Traffic Server提供显式代理缓存,其中必须将用户的客户端软件配置为直接向Traffic Server发送请求。

  • ATS的反向代理服务器

作为反向代理,Traffic Server被配置为用户尝试连接的源服务器(通常,源服务器的通告主机名解析为Traffic
Server,其充当真正的源服务器)。 反向代理功能也称为服务器加速。

反向代理服务器和正向代理的服务器的区别:正向代理即通常所说的代理,用于代表内部网络用户向Internet上的服务器(或称外部服务器,通常为Web服务器)发出连接请求,并接收响应结果。

  • ATS作为内容缓存服务器

可以参与灵活的高速缓存层次结构,其中未从一个高速缓存实现的Internet请求被路由到其他区域高速缓存,从而利用附近高速缓存的内容和接近度。 在代理服务器的层次结构中,Traffic Server可以充当其他Traffic Server系统或类似缓存产品的父缓存或子缓存。

8.Traffic Server组件

  • Traffic Server缓存

Traffic Server缓存由基于对象存储的高速对象数据库提供支持。对象存储根据URL和关联的头索引对象。使用复杂的对象管理,对象存储也可以缓存同一对象的备用版本(可能使用不同的语言或编码类型)。它还可以有效地存储非常小和非常大的对象,从而最大限度地减少浪费的空间。当缓存已满时,Traffic Server会删除陈旧数据,以确保最常请求的对象可用性和新鲜性。Traffic Server旨在提升磁盘容错率。如果一个磁盘数据完全损坏或丢失,则Traffic Server会将整个磁盘标记为已损坏并继续使用剩余磁盘。如果所有缓存磁盘都出现故障,则Traffic Server将切换到仅代理模式(proxy-only )。您可以对缓存进行分区以保留一定量的磁盘空间,以存储特定协议和源服务器的数据。

  • RAM缓存

内存缓存区储存比较热门的对象,并减少磁盘上的负载,尤其是在临时流量峰值期间。

  • 主机数据库

Traffic Server主机数据库存储Traffic Server连接到的源服务器的域名服务器(DNS)条目,以满足用户请求。 此信息用于调整未来的协议交互并优化性能。 连同其他信息,主机数据库跟踪:

  1. DNS信息(用于将主机名快速转换为IP地址)
  2. 每个主机的HTTP版本(因此高级协议功能可以与运行现代服务器的主机一起使用)
  3. 主机可靠性和可用性信息(因此用户不会等待未运行的服务器)
  • DNS解析器

Traffic Server包括一个快速的异步DNS解析器,以简化主机名到IP地址的转换。 Traffic Server通过直接发出DNS
命令包而不是依赖较慢的传统解析器库来本机实现DNS解析器。 由于可以并行发布许多DNS查询,并且快速DNS
缓存在内存中维护流行绑定,因此可以降低DNS流量

  • Traffic Server进程

Traffic Server包含三个进程,它们协同工作以处理请求并管理,控制和监视系统的运行状况。
traffic_server进程是Traffic Server的事务处理引擎。 它负责接受连接,处理协议请求以及从缓存或源服务器
提供文档。
traffic_manager进程是Traffic Server的命令和控制工具,负责启动,监视和重新配置traffic_server进程。
traffic_manager进程还负责代理自动配置端口,统计信息接口和虚拟IP故障转移。
traffic_cop 进程监视 traffic_server 和 traffic_manager 进程,此进程周期性的查询 traffic_server 和
traffic_manager 进程的健康状况,如果查询在一定间隔时间内未返回或者返回信息不正确,traffic_cop 将重
启 traffic_manager 和 traffic_server 进程。
如果traffic_manager进程检测到traffic_server进程失败,它会立即重新启动进程,但也会维护所有传入请求的连
接队列。 在服务器完全重新启动之前的几秒钟内到达的所有传入连接都将保存在连接队列中,并按先到先得的顺序
进行处理。 此连接排队可防止用户重启任何服务器重启时间。

京东实习cdn学习_第1张图片

你可能感兴趣的:(CDN,云计算)