简化的CDN架构分析

CDN架构的设计目标是通过复制系统资源(即Web服务器)的方式来获得高性能和高扩展性,为了能确保在海量内容下可以稳定提供高性能的服务。系统资源的复制可以在本地和地理两个尺度上进行。如果是本地复制则响应用户请求的各台服务器紧密地连接在同一个局域网内。这些服务器一般是共享同一条上行连接,这条上行连接将本地系统连接到互联网。这样的本地系统一般称为集群或簇(cluster)。经过系统资源的复制若干台服务器组织成一个集群可以提供更大的计算能力,它们之间能够以快速有效的方式彼此交互。复制还可以提高容错能力,因为一个出错的节点能够很容易地被旁路。
基于局域网的本地系统有很多优点。不过当网站访问量很大时本地系统的可扩展性在创建和分发资源方面面临一些问题。影响本地复制的第一个问题是所谓的“第一公里”(first mile)问题。第一公里是指服务器集群和互联网之间的网络连接,它是影响端到端性能的系统瓶颈。不仅如此它还是一个潜在的失效单点。无论集群的计算能力如何,集群内通信不畅、外部某个路由器的失效和拒绝服务(DoS)攻击都可能会造成集群无法提供服务。当需要更好的性能和可扩展性时可以在地理这个尺度上复制网络设施中的一些资源会有所帮助。
在一个典型的CDN中,服务器分为两类:边缘服务器(edge server)和核心服务器(core server)。边缘服务器是源服务器(核心服务器)在“互联网边缘”的副本,主要负责与使用网络服务的客户端实现交互。边缘服务器是指那些与客户端距离最近的服务器,典型的例子是多ISP的网络接入点(Points of Presence,POP)。基于DNS的重定向方法使客户端的请求从源服务器转发到边缘服务器。在这个方法中DNS服务器需事先做某些调整,以便当其收到对主机名的查询时,可以将其解析为合适的边缘服务器的IP地址。最佳边缘服务器的算法需要考虑地理意义上的距离、网络意义上的距离、网络连接情况和边缘服务器的状态等因素。
核心服务器是一个逻辑实体,负责处理网络设施的管理、服务请求分配的协调以及维护请求列表。核心服务器可以是一台单独的高性能服务器,也可以是一个多集群(multi-cluster)。多集群中的各个集群之间相互协作,对外却表现为一台虚拟的高可用性和高计算能力的计算机。
网防cdn专业提供国内外高防cdn加速服务
本文链接:http://www.f8i.com/news/347.html
简化的CDN架构分析的更多相关文章
- 基于React的PC网站前端架构分析
代码地址如下:http://www.demodashi.com/demo/12252.html 本文适合对象 有过一定开发经验的初级前端工程师: 有过完整项目的开发经验,不论大小: 对node有所了解 ...
- 分布式MySQL数据库TDSQL架构分析
摘要:腾讯计费平台部为了解决基于内存的NoSQL解决方式HOLD平台在应对多种业务接入时的不足.结合团队在MySQL领域多年应用和优化经验,终于在MySQL存储引擎基础上,打造一套分布式SQL系统TD ...
- [转帖]InfiniBand技术和协议架构分析
InfiniBand技术和协议架构分析 2017年06月06日 20:54:16 Hardy晗狄 阅读数:15207 标签: 云计算存储Infiniband 更多 个人分类: 存储云计算 版权声明 ...
- 【转载】Instagram架构分析笔记
原文地址:http://chengxu.org/p/401.html Instagram 架构分析笔记 全部 技术博客 Instagram团队上个月才迎来第 7 名员工,是的,7个人的团队.作为 iP ...
- 万字长文:ELK(V7)部署与架构分析
ELK(7版本)部署与架构分析 1.ELK的背景介绍与应用场景 在项目应用运行的过程中,往往会产生大量的日志,我们往往需要根据日志来定位分析我们的服务器项目运行情况与BUG产生位置.一般情况下直接在日 ...
- tomcat架构分析 (Session管理)
Session管理是JavaEE容器比较重要的一部分,在app中也经常会用到.在开发app时,我们只是获取一个session,然后向session中存取数据,然后再销毁session.那么如何产生se ...
- Magento架构分析,Magento MVC 设计分析
Magento架构分析,Magento MVC 设计分析 分类:Magento 标签:Magento MVC.Magento架构 669人浏览 Magento 采用类似 JAVA的架构,其扩展与稳定性 ...
- Flickr 网站架构分析
Flickr 网站架构分析 Flickr.com 是网上最受欢迎的照片共享网站之一,还记得那位给Windows Vista拍摄壁纸的Hamad Darwish吗?他就是将照片上传到Flickr,后而被 ...
- Android架构分析之Android消息处理机制(二)
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android版本号:4.4.2 在上一篇文章中我们看了一个使用Handler处理Message消息的样例,本文我们 ...
随机推荐
- Unity DoTween 动画使用案例
这边我就直接放一个标准的Dotween动画的使用demo吧. 这个案例满足应该可以完成你所想实现的几乎所有复杂动画. void PlayTween() { //set tween data float ...
- java_多线程4种实现方式
为了34月份回学校春招,不得不复习一下线程的四种实现方式,希望春招时能找到更好的公司,加油! 1.继承Thread类 class MyThread extends Thread{ private in ...
- Node.js系列-express(上)
前言 Node.js系列的第一篇:http,大概描述了通过使用node.js内置的api创建一个服务并监听request实现简单的增删改查.现在,我们就通过通读express官网及使用express框 ...
- SpringMVC数据验证(AOP处理Errors和方法验证)
什么是JSR303? JSR 303 – Bean Validation 是一个数据验证的规范,2009 年 11 月确定最终方案. Hibernate Validator 是 Bean Valida ...
- SpringMVC源码情操陶冶-AbstractUrlHandlerMapping
承接前文SpringMVC源码情操陶冶-AbstractHandlerMapping,前文主要讲解了如何获取handler处理对象,本文将针对beanName注册为handler对象作下解析 Abst ...
- 《Web Scraping With Python》Chapter 2的学习笔记
You Don't Always Need a Hammer When Michelangelo was asked how he could sculpt a work of art as mast ...
- 获取View组件宽度以及ViewTreeObserver
View宽高测量方法: 测量方法有三种,如下: 1)(直接在onCreate()执行) ,View.MeasureSpec.UNSPECIFIED); ,View.MeasureSpec.UNSPEC ...
- SpringMVC之Http标准的头部信息
- centos java环境搭建
我个人配置的是阿里云centos 7.4 64bit 不存在openjdk 看下面内容的情况下看是否存在openjdk java -version 如果返回java版本值,则存在openjdk,需要卸 ...
- Python编程软件的安装与使用——Windows、Linux和Mac
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ 最近,有读者透露:Python软件如何安装?为什么自己安装的软件会有各种"奇怪"的问题?据此,本 ...