宿迁波仔博客

负载均衡技术的实现

广义上的负载均衡既可以设置专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。对一个网络 的负载均衡应用, 从网络的不同层次入手,根据网络瓶颈所在进行具体分析。从客户端应用为起点纵向分析,参考OSI的分层模型,我们把负载均衡技术的实现分为客户端负载均衡技术、应用服务器技术、高层协议交换、网络接入协议交换等几种方式。

应用服务器的负载均衡技术  

如果将客户端的负载均衡层移植到某一个中间平台,形成三层结构,则客户端应用可以不需要做特殊的修改, 透明的通过中间层 应用服务器将请求均衡到相应的服务结点。比较常见的实现手段就是反向代理技术。使用反向代理服务器,可以将请求均匀转发给多 台服务器,或者直接将缓存的数据返回客户端,这样的加速模式在一定程度上可以提升静态网页的访问速度,从而达到负载均衡的目 的。

使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能。然而它本身也存在一些问题,首先就是必须为每一种服务都专门开发一个反向代理服务器,这就不是一个轻松的任务。   

反向代理服务器本身虽然可以达到很高效率,但是针对每一次代理,代理服务器就必须维护两个连接,一个对 外的连接,一个对 内的连接,因此对于特别高的连接请求,代理服务器的负载也就非常之大。反向代理能够执行针对应用协议而优化的负载均衡策略, 每次仅访问最空闲的内部服务器来提供服务。但是随着并发连接数量的增加,代理服务器本身的负载也变得非常大,最后反向代理服务器本身会成为服务的瓶颈。

基于域名系统的负载均衡 

NCSA的可扩展Web是最早使用动态DNS轮询技术的web系统。在DNS中为多个地址配置同一个名 字,因而查询这个名字的客户机将 得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。在很多知名的web站点都使用了这个技术:包括 早期的yahoo站点、163等。动态DNS轮询实现起来简单,无需复杂的配置和管理,一般支持bind8.2以上的类unix系统都能够运行,因此广为使用。   

DNS负载均衡是一种简单而有效的方法,但是存在不少问题。  

首先域名服务器无法知道服务结点是否有效,如果服务结点失效,余名系统依然会将域名解析到该节点上,造成用户访问失效。  

其次,由于DNS的数据刷新时间TTL(Time to LIVE)标志,一旦超过这个TTL,其他DNS服务器就需要和这个服务器交互,以重 新获得地址数据,就有可能获得不同IP地址。因此为了使地址能随机分配,就应使TTL尽量短,不同地方的DNS服务器能更新对应的 地址,达到随机获得地址。然而将TTL设置得过短,将使DNS流量大增,而造成额外的网络问题。  

最后,它不能区分服务器的差异,也不能反映服务器的当前运行状态。当使用DNS负载均衡的时候,必须尽 量保证不同的客户计 算机能均匀获得不同的地址。例如,用户A可能只是浏览几个网页,而用户B可能进行着大量的下载,由于域名系统没有合适的负载策 略,仅仅是简单的轮流均衡,很容易将用户A的请求发往负载轻的站点,而将B的请求发往负载已经很重的站点。因此,在动态平衡特 性上,动态DNS轮询的效果并不理想。   

高层协议内容交换技术  

除了上述的几种负载均衡方式之外,还有在协议内部支持负载均衡能力的技术,即URL交换或七层交换,提 供了一种对访问流量 的高层控制方式。Web内容交换技术检查所有的HTTP报头,根据报头内的信息来执行负载均衡的决策。例如可以根据这些信息来确定 如何为个人主页和图像数据等内容提供服务,常见的有HTTP协议中的重定向能力等。  

HTTP运行于TCP连接的最高层。客户端通过恒定的端口号80的TCP服务直接连接到服务器,然后通过TCP连接向服务器端发送一个 HTTP请求。协议交换根据内容策略来控制负载,而不是根据TCP端口号,所以不会造成访问流量的滞留。  

由于负载平衡设备要把进入的请求分配给多个服务器,因此,它只能在TCP连接时建立,且HTTP请求通 过后才能确定如何进行负载的平衡。当一个网站的点击率达到每秒上百甚至上千次时,TCP连接、HTTP报头信息的分析以及进程的时延已经变得很重要了,要 尽一切可能提高这几各部份的性能。  

在HTTP请求和报头中有很多对负载平衡有用的信息。我们可以从这些信息中获知客户端所请求的URL和 网页,利用这个信息,负 载平衡设备就可以将所有的图像请求引导到一个图像服务器,或者根据URL的数据库查询内容调用CGI程序,将请求引导到一个专用 的高性能数据库服务器。   

如果网络管理员熟悉内容交换技术,他可以根据HTTP报头的cookie字段来使用Web内容交换技术 改善对特定客户的服务,如果能 从HTTP请求中找到一些规律,还可以充分利用它作出各种决策。除了TCP连接表的问题外,如何查找合适的HTTP报头信息以及作出 负载平衡决策的过程,是影响Web内容交换技术性能的重要问题。如果Web服务器已经为图像服务、SSL对话、数据库事务服务之类的 特殊功能进行了优化,那么,采用这个层次的流量控制将可以提高网络的性能。  

网络接入协议交换  

大型的网络一般都是由大量专用技术设备组成的,如包括防火墙、路由器、第3、4层交换机、负载均衡设 备、缓冲服务器和Web 服务器等。如何将这些技术设备有机地组合在一起,是一个直接影响到网络性能的关键性问题。现在许多交换机提供第四层交换功 能,对外提供一个一致的IP地址,并映射为多个内部IP地址,对每次TCP和UDP连接请求,根据其端口号,按照即定的策略动态选择 一个内部地址,将数据包转发到该地址上,达到负载均衡的目的。很多硬件厂商将这种技术集成在他们的交换机中。一般采用随机选择,根据服务器的连接数量或者相应时间进行选择的负载均衡策略来分配负载。

2014-03-05 | 发布:宿迁波仔博客 | 分类:服务器 | 评论:14

留言列表:

  • 快乐易文 发布于 2014-07-26 17:36:01  回复
  • 不错啊
  • 金利锁业 发布于 2014-03-13 10:41:37  回复
  • 支持博主更新啊
  • 垂直绿化 发布于 2014-03-06 16:08:35  回复
  • 好吧,不明觉厉
  • 大豆异黄酮 发布于 2014-03-06 15:30:11  回复
  • 支持高深的。可以好好研究
  • 夏日博客 发布于 2014-03-06 12:42:51  回复
  • 只能表示支持了,这些技术太高深了。
  • 网赚客 发布于 2014-03-06 11:13:45  回复
  • 过来学习一下。
  • 圆月博客 发布于 2014-03-06 10:38:11  回复
  • 了解了解
  • 鹏达锁业 发布于 2014-03-06 09:52:21  回复
  • 支持 博主,欢迎回访哦、、、、、、、、
  • 动漫那点事 发布于 2014-03-06 09:02:08  回复
  • 只能继续研究了,算是不太了解的
  • rainbow 发布于 2014-03-05 21:44:14  回复
  • 有点不懂,过来看看
  • 宁波轻钢龙骨 发布于 2014-03-05 16:36:06  回复
  • 对于这块不懂,学习了
  • PHP二次开发 发布于 2014-03-05 14:17:20  回复
  • 路过吧。。。。
  • 蔚蓝海岸婚纱摄影 发布于 2014-03-05 12:15:16  回复
  • 路过,看看。
  • 蔚蓝海岸婚纱摄影 发布于 2014-03-05 12:00:24  回复
  • 好吧!仅表示支持。

发表留言: