在上一篇介绍了cdn的一些原理和概念,以及提供cdn基础网络服务的途径。cdn看起来对于静态内容的,比如html,js,image是非常合适的,通过cdn的部署,用户只需要一跳就可以访问到网站的内容。那对于动态内容怎么办呢?我回答一下:
动态内容按照存在形态可以分为三类。
第一类:内容长时间不需变化,这类内容一般是通过网页静化技术,实现动态内容转换成静态内容,从而达到cdn部署,典型的就是内容类网站,比如新浪、搜狐、网易等等的内容发布系统cms,内容的增删改等管理工作被准实时同步到各个节点。
第二类:内容可能会短时间内发生变动,但是最终会稳定。比如论坛、博客等应用,这类服务提供的内容按照一定的时间间隔,实现批量静化,当然也有实时静化,像Mop的大杂烩、网易社区就是使用了这样的策略。
第三类:内容会实时变化,非常个性化。比如邮箱应用,这类服务提供的内容无法实现静化,只能通过实行分区域部署和负载均衡等手段进行优化。
对于提供cdn服务的厂商来讲,静态内容的cdn自然没有问题,对于第三类服务,只能从通信链路层进行相应的优化。
对于很多网站的伪静化,有的出于Seo的考虑,有的出于安全性的考虑,手段基本上是rewrite Url。它只不过是一种外在的表现形式,与Html静化是两回事,它依然是一种动态内容。
1. 负载均衡的分类
负载均衡技术在网站运营过程中应用非常普遍,技术也很成熟。负载均衡技术按照软硬件形式分为软均衡和硬均衡。软均衡就是基于软件技术的均衡,硬均衡是基于硬件技术的均衡;
按照网络协议划分又分为四层均衡和七层均衡。四层均衡就是基于OSI网络层的数据均衡,七层均衡是基于OSI应用层的数据均衡。
各种均衡方式在大型网站中均有采用,而且大多数情况下,是多种均衡方式的组合。
2. DNS轮询均衡
这种方式,算是比较独立的一种方式,不在上述划分之列,但使用比较广泛,一般用在网站最前端。你可以做个试验,在dos命令行中运行nslook命令。比如:nslookup http://www.163.com/
,你会看到命令给出了一堆解析后的IP地址。这些地址就是http://www.163.com/
这个域名绑定的多条A记录。我们从浏览器发起的访问请求http://www.163.com/
,
那么你输入的域名首先需要经过DNS服务器进行解析,Dns服务器的解析的过程就是按照A记录的顺序,依次分配IP地址。Dns轮询方式实现均衡就是利用
这个原理,在一个域名下面绑定N个IP地址,访问请求被均衡到不同的设备。Dns轮询方式提供的IP地址,在大型网站中往往是一个集群的地址,可能是均衡
交换机也可能是均衡服务器。对于小网站的话,挂接多台服务器也没有问题。
DNS轮询均衡的优点:
1、零成本:只是在Dns服务器上绑定几个A记录,域名注册商一般都提供;
2、部署简单:就是在网络拓扑进行设备扩增,然后在Dns服务器上添加记录。
DNS轮询均衡的缺点:
1、流量分配不均:Dns解析过程其实环节很多,而且是一种层层缓存的机制,你的dns服务器虽然进行更新,但是客户机、以及网络上其它的dns服务器不
会实时更新,所以流量很难保证100%的平均。目前,dns服务器都提供了多种手段可以调整dns轮询分配的策略,但是确实无法保证很完美的均衡。
2、健康检查:Dns服务器中A记录地址中的某一台服务器宕机,DNS服务器是无法知道的,仍旧会将访问分配到此服务器。所以需要人员或者工具进行实时检
测,在某台机器宕机之后,把备份机推上生产线,如果想要从A记录地址摘除某个地址,这个通知过程需要几个小时甚至更久才能扩散到所有的客户机。
Dns轮询方式推到服务的最前端还是很有效的,它通过最原始的方式,把访问用户映射到不同的服务集群上。对于大型网站来讲,对外服务的IP地址是不
可能经常变动的,而且后端的集群一旦宕掉,可以迅速推上冗余集群。再加上,一般都是经过CDN部署,服务被拆分到各个局部,所以在运营过程中不会产生太大
的影响。
3. OSI七层模型
我们接下来讲讲七层均衡。要理解四七层均衡的原理,就先要回忆一下大学课本里学的网络七层模型(OSI)。
OSI是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。
OSI七层模型是一个很好的理论模型,但是在实际应用中都做了裁剪。尤其是TCP/IP的盛行,把7层结构压成了4层,
所以很多人都批评OSI七层模型过于复杂,但是作为一个完整的全面的网络模型,还是被大家非常认可的。OSI的7层从上到下分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
7层的功能描述:
(1)应用层:与其他计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工
作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示
例:telnet,HTTP,FTP,WWW,NFS,SMTP等。
(2)表示层:这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASII格式传输。如果选择二进制,那么发送方和接收方不改变文
件的内容。如果选择ASII格式,发送方将把文本从发送方的字符集转换成标准的ASII后发送数据。在接收方将标准的ASII转换成接收方计算机的字符
集。示例:加密,ASII等。
(3)会话层:他定义了如何开始、控制和结束一个会话,包括对多个双向小时的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。
(4)传输层:这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。
(5)网络层:这层对端到端的包传输进行定义,他定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
(6)数据链路层:他定义了在单个链路上如何传输数据。这些协议与被讨论的歌种介质有关。示例:ATM,FDDI等。
(7)物理层:OSI的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定的标准。连接头、针、针的使用、电流、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。
分享到:
相关推荐
做了很多年的伸手党,去年做一个项目需要收集域名的信息,其中就要查询CDN解析记录,然后就有了这个工具,可以查询指定域名一定时间的CDN缓存,源代码使用mono环境编写的C#,可以直接逆向,我就不贴代码了。...
**什么是CDN** CDN全称为内容分发网络(Content Delivery Network),是一种分布式网络服务,旨在提高网络内容的访问速度和可用性。它通过在全球各地部署多个缓存节点,将网站的内容分发到离用户最近的节点上,使得...
- `CHANGELOG-v3-0.10.x.md` 可能是版本更新日志,记录了从v3.0.10系列以来的变更。 - `README.md` 和 `Privacy.md` 分别可能是项目简介和隐私政策,解释了扩展的用途和数据处理方式。 - `js` 文件夹可能包含了扩展...
4. **配置DNS**:将网站的DNS记录指向CDN服务提供商的CNAME记录,确保流量被引导至CDN网络。 5. **监控与优化**:持续监控CDN性能,根据数据进行优化,如调整缓存策略,处理404错误等。 **cdn服务器搭建软件v1.7**...
《Origin CDN切换:提升下载速度的关键技术》 在数字化时代,内容分发网络(CDN,Content Delivery Network)已经成为互联网服务的重要组成部分,特别是在游戏下载、流媒体服务等领域。Origin是知名的游戏平台,它...
如何搭建自己CDN服务器 目前在免费CDN市场上,360因为“免费”而越做越大,加速乐做的很早。但因免费的节点不多,好多用户都被强走了。安全宝现在也还不错。目前国内的免费CDN市场已呈现三足鼎立趋势。 可为什么我...
在传统的CDN配置中,用户需要手动设置源站、选择合适的CDN服务商、配置DNS记录、调整缓存策略等,这一系列操作对于不熟悉网络和服务器管理的人来说可能相当复杂。而"CDN一键配置V2.0"则通过自动化脚本和图形界面,...
在Laravel框架中,CDN(内容分发网络)是一种重要的技术,用于加速静态资源的加载,提升用户体验,减轻服务器压力。Laravel CDN包是为了更方便地管理和利用CDN服务而设计的。以下是对这个主题的详细解释: 1. **...
2. X-Cache与缓存状态:在HTTP响应头中,X-Cache字段用于记录CDN缓存的状态。例如,“X-Cache-HIT”表示缓存命中,而“X-Cache-MISS”则表示未命中。具体的命中类型如“TCP_MEM_HIT”(内存命中)和“TCP_MISS”(未...
根据给定文件的信息,我们可以提炼出关于视频CDN(内容分发网络)架构的重要知识点。 ### 一、视频CDN架构概述 视频CDN架构是一种专门用于高效传输视频内容的技术框架,它通过在网络边缘部署缓存节点的方式,将...
ReplaceGoogleCDN 是一款专为 Chrome 浏览器设计的扩展程序,它的主要功能是将网页中引用的 Google Content Delivery Network (CDN) 的资源替换为国内可访问的镜像站点,以解决由于网络限制导致的加载缓慢或无法加载...
7. **监控与日志**:对CDN性能进行实时监控,记录访问日志,帮助分析和优化网络性能。 8. **API接口**:允许管理员集成自定义功能,例如内容预热、动态配置等。 要使用"Layer-master"来搭建自己的CDN,你可能需要...
本脚本用于清除AWS上的CDN(即cloudfront)的缓存 使CDN缓存过期,重新回源拉去
cdn检测+脚本+用于检测是否存在cdn
CDN(内容分发网络)是一种基于互联网的分布式网络,旨在通过将内容缓存到世界各地靠近用户的节点上,以此来减少用户获取数据时的延迟。CDN技术的应用能够提高网络的可用性、可靠性和性能,对于图片和流媒体等需要...
本文档是兄弟公司(Depending on the context, this could be translated as "Brother Company" or "Brother Corporation")针对DCP-9020CDN, MFC-9140CDN, 和MFC-9340CDW系列彩色激光多功能设备的一份中文维修手册。...
一个直接下载CDN上文件的工具
### 互联网加速CDN原理详解 #### 一、CDN的概念与产生背景 - **概念**:CDN(Content Delivery Network),即内容分发网络,是一种位于现有互联网基础之上的虚拟网络,通过在网络各处布置节点服务器来实现对数据、...