网站架构探索(3)---负载均衡的方式 王泽宾

    在上一篇介绍了cdn的一些原理和概念,以及提供cdn基础网络服务的途径。cdn看起来对于静态内容的,好比html,js,image是很是合适的,经过cdn的部署,用户只须要一跳就能够访问到网站的内容。那对于动态内容怎么办呢?我回答一下:
    动态内容按照存在形态能够分为三类。
    第一类:内容长时间不需变化,这类内容通常是经过网页静化技术,实现动态内容转换成静态内容,从而达到cdn部署,典型的就是内容类网站,好比新浪、搜狐、网易等等的内容发布系统cms,内容的增删改等管理工做被准实时同步到各个节点。
    第二类:内容可能会短期内发生变更,可是最终会稳定。好比论坛、博客等应用,这类服务提供的内容按照必定的时间间隔,实现批量静化,固然也有实时静化,像Mop的大杂烩、网易社区就是使用了这样的策略。
第三类:内容会实时变化,很是个性化。好比邮箱应用,这类服务提供的内容没法实现静化,只能经过实行分区域部署和负载均衡等手段进行优化。
    对于提供cdn服务的厂商来说,静态内容的cdn天然没有问题,对于第三类服务,只能从通讯链路层进行相应的优化。
    对于不少网站的伪静化,有的出于Seo的考虑,有的出于安全性的考虑,手段基本上是rewrite Url。它只不过是一种外在的表现形式,与Html静化是两回事,它依然是一种动态内容。

1. 负载均衡的分类
    负载均衡技术在网站运营过程当中应用很是广泛,技术也很成熟。负载均衡技术按照软硬件形式分为软均衡和硬均衡。软均衡就是基于软件技术的均衡,硬均衡是基于硬件技术的均衡;
    按照网络协议划分又分为四层均衡和七层均衡。四层均衡就是基于OSI网络层的数据均衡,七层均衡是基于OSI应用层的数据均衡。
    各类均衡方式在大型网站中均有采用,并且大多数状况下,是多种均衡方式的组合。

2. DNS轮询均衡
    这种方式,算是比较独立的一种方式,不在上述划分之列,但使用比较普遍,通常用在网站最前端。你能够作个试验,在dos命令行中运行nslook命令。好比:nslookup www。163。com,你会看到命令给出了一堆解析后的IP地址。这些地址就是www。163。com这个域名绑定的多条A记录。咱们从浏览器发起的访问请求 [url]http://www.163.com/[/url],那么你输入的域名首先须要通过DNS服务器进行解析,Dns服务器的解析的过程就是按照A记录的顺序,依次分配IP地址。Dns轮询方式实现均衡就是利用这个原理,在一个域名下面绑定N个IP地址,访问请求被均衡到不一样的设备。Dns轮询方式提供的IP地址,在大型网站中每每是一个集群的地址,多是均衡交换机也多是均衡服务器。对于小网站的话,挂接多台服务器也没有问题。
   DNS轮询均衡的优势:
  一、零成本:只是在Dns服务器上绑定几个A记录,域名注册商通常都提供;
  二、部署简单:就是在网络拓扑进行设备扩增,而后在Dns服务器上添加记录。
  DNS轮询均衡的缺点:
  一、流量分配不均:Dns解析过程其实环节不少,并且是一种层层缓存的机制,你的dns服务器虽然进行更新,可是客户机、以及网络上其它的dns服务器不会实时更新,因此流量很难保证100%的平均。目前,dns服务器都提供了多种手段能够调整dns轮询分配的策略,可是确实没法保证很完美的均衡。
  二、健康检查: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等。
相关文章
相关标签/搜索