我们可以从淘宝架构中的CDN入手分析。使用CDN和反向代理提高网站性能。由于淘宝的服务器不能分布在国内的每个地方,所以不同地区的用户访问需要通过互联路由器经过不同长度的路径来访问服务器,返回路径也一样,所以数据传输时间比较长。对于这种情况,常常使用CDN解决,CDN将数据内容缓存到运营商的机房,用户访问时先从最近的运营商获取数据,这样大大减少了网络访问的路径。
在这里简单介绍一下CDN的原理。CDN的全称Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。CDN目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决 Internet 网络拥塞状况,提高用户访问网站的响应速度。CDN是一种组合技术,其中包括源站、缓存服务器、智能DNS几个重要部分。
首先简单表述一下传统的动态系统访问方法:
这是在网络中传统的动态访问法演示图,图中可以看到,当用户需要访问客户端系统时需要经过几个中继器或者缓存器的接收的发放才能完成此次访问。结合计网知识,在用户访问淘宝总系统的巨长传输线路中,由于网络环境和网络层结构的原因,不可避免的会发生丢包或者丢帧的现象。这样就会导致用户需要加长访问过程的时间,降低数据及时传输的速率。
这样的情况会对使用带来非常大的困扰,CDN技术通过系统总端对各个分系统的内容分发并使得分系统加以缓存,来为用户匹配最近相邻的分缓存系统,从而将缓存系统中的数据直接传送至用户手中,完全避免了复杂和冗长的传输线路,大大提速了交换速率和系统性能。使得原本相距甚远的淘宝系统端和用户,通过早已把数据存储好的缓存器连接了起来,可以看出“内容分发网络”实至名归。
但是读者可能会产生一些问题,就是说到底,我的各个分系统只是缓存器,不可能拥有总端的容量和运行速率,无法真正实现所有数据和地址信息的“移植”。那我们到底需要将什么东西上传至缓存器中加以存储呢?其实我认为此疑惑需要具体问题具体分析,继续用我主要研究的淘宝网来说,对于每个用户而言,他们在淘宝中有自己的个人资料,订单,收藏等等一些很常用的内容,这些内容在用户使用的过程中是很容易被点击和查看的,这时候就需要缓存器将这些数据提前存储起来,以方便分系统就近的用户来使用;当然,还应该包括一些力推的广告和新活动详情等等。
智能DNS
智能DNS是域名服务在业界首创的智能解析服务。能自动判断访问者的IP地址并解析出对应的IP地址,使网通用户会访问到网通服务器,电信用户会访问到电信服务器。
智能DNS是整个CDN技术的核心,它主要根据用户的来源,将其访问请求指向离用户比较近的缓存服务器,如把广州电信的用户请求指向到广州电信IDC机房中的缓存服务器。通过智能DNS解析,让用户访问同服务商下的服务器,消除国内南北网络互相访问慢的问题,达到加速作用。