`
美丽的小岛
  • 浏览: 308251 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

“从头到脚”介绍服务器负载均衡<转>

 
阅读更多

对于负载均衡的一大应用就是处理服务器的任务。如何进行有效的配置和规划,让每一个服务器接受到等量的工作,这就是服务器负载均衡设备的工作。在整个服务器集群中,若有一个服务器出现了故障,只需将它提出到集群之外进行维修,之后在加入集群中就可以了。中间,负载均衡能自动进行任务的从新分配,不会造成单个集中性的负载问题。

服务器负载如何分担?

服务器负载均衡(SLB)设备的功能越来越高级,有越来越多的产品通过解释URL等HTTP头中的应用种类信息来分流数据

。SLB设备既可以应用于面向执行交易处理的手机站点,也可以按客户端种类将通信分流到特定服务器。支持防火墙设备、VPN设备和入侵检测系统(IDS,Intrusion Detection System)的负载均衡设备相继出台。

负载均衡的主要用法

负载均衡的目的不同,对产品所要求的功能也不同。负载均衡设备有以下几种主要用法:

(1)将来自用户的接入请求分散给多个服务器,要求这种产品有SLB功能和3/4层交换功能;

(2)将通信流量分散给多台防火墙设备、入侵检测系统和VPN设备;

(3)将来自用户的接入请求分散给Internet上不同站点的服务器,要求这种产品有站点间的负载均衡功能;

(4)将交易处理分散给适当的服务器,要求这种产品有支持应用层的负载均衡功能。

其中,需求量最大的是(1)。

精确识别HTTP头

支持应用层的SLB设备,具有识别应用种类信息并据此分配通信流量的功能。在EC站点,对于交易类处理过程,有时同一客户端与服务器之间要有多次反复的数据交换;在这种情况下,需要有管理会话、将来自同一用户的通信量分配给同一个服务器的能力。

作为负载分配条件,可以利用下述4种信息:

(1)URL;

(2)Cookie ;

(3)SSL会话ID;

(4)源IP地址和端口号。

其中(1)、(2)是包含在HTTP头中的信息,这是只有支持应用层才会有的功能。过去的SLB产品中也支持(2)~(4),最近,也开始向支持(1)的方向发展。支持应用层的所有SLB设备,都已经或计划不久要支持(1)。

支持服务器ID

在执行交易处理的接收手机接入请求的站点中,为了有效进行负载均衡,有越来越多可以利用服务器ID的产品问世。这种产品通过识别存储在URL中的服务器ID,将通信量分配给适当的服务器。支持应用层的产品,基本上都有这个功能。若将来自特定用户的接入请求分配给同一个服务器,可以使系统既容易构筑,也不易形成瓶颈。因此,要利用各种信息来实现会话管理,将会话ID存储到由服务器返给用户的URL参量和Cookie中,或利用SSL会话ID对会话进行管理。SLB设备参照会话管理信息,将交易处理的通信量分配给适当的服务器。

在接收手机上网的站点中,多数采用将会话ID存储到URL的方法。现在的浏览器电话基本上都支持Cookie和SSL,过去的SLB设备,不能参照存储到URL的信息来决定分配对象,而最近的产品基本上都做到了这点。但是,如果利用URL和Cookie等HTTP头信息来管理会话,要大量消耗SLB设备CPU的处理能力。随着同时进行会话数目的增加,要检测的会话ID也增多,CPU的负荷越来越重。于是,存储在URL中的 服务器ID应运而生,在服务器端与会话ID一起,作为用于识别服务器的ID发布,附加在URL中返给用户。此后,SLB设备按服务器ID来分配通信量即可。而且,即使同时的会话数增加,对SLB设备的影响也不大。

按不同终端来切换服务器

通过识别URL等HTTP头来分配通信量的功能,除用于会话管理外,还可用于其它用途,如按客户端种类和所要求的处理来分配通信量。用HTTP头的“User-Agent"项,判断浏览器类型(客户机类型), 可以将通信传送给保有相应客户机内容的服务器。如果希望由不同服务器分别提供面向手机的内容和面向PC的内容,这是个非常方便的功能。此外,还可将对HTML文件和图像文件等静态数据的请求传送给缓存服务器;将对CGI和JSP等动态数据的请求传送给应用服务器。

均等分配服务器负载

哪个产品都能用Ping来确认服务器的响应速度,用TCP/UDP端口来确定不同“应用"类型的状态 。但仅靠这样的功能,实际上还无法弄清楚分配目标服务器是否是轻载。如果能深入检测到应用的状态,就能确实做到由负荷轻的服务器处理通信。同时,也可以避免发生这样的问题:将请求分配到了TCP/IP处于运行状态而Web服务器等的应用却处于宕机状态的服务器。

美国Hydraweb Technologies公司的Hydra系列、Coyote Point Systems公司 的Equalizer 系列和以色列Radware公司的WSD-Pro+ 系列,在服务器中装入专用代理软件,具有根据CPU和内存利用率来分配通信的功能。例如,两台Web服务器的CPU利用率分别是25%和50%,可以按2:1的比例来分配通信量。

利用代理功能可以详细把握服务器和应用的状况,但在服务器端安装代理软件比较费事。要想省事,还有一种方法就是利用SNMP的信息。如果利用支持SNMP的服务器和OS,不装入代理软件也能掌握服务器的状态。F5 Networks公司的BIG-IP、思科的Local Director、CSS系列 和WSD-Pro+等产品,支持SNMP监视功能。另外,还可以从应用侧来控制通信的分配。例如,在用某个检索数据库进行重要处理之际,将更多的通信分配给参照其它检索数据库的Web服务器。

加速HTTP通信的产品

可加速Web服务器响应速度、减轻负荷的产品现在已经上市,如BIG-IP和美国Clickarray Networks公司的 Array 系列产品。这种产品具有减少HTTP通信中“建立/切断TCP连接"开销的功能。

在通常的HTTP通信中,每次传输文件都要建立和断开TCP连接。TCP连接的建立/切断,对于HTTP通信来说是开销,会引起响应速度下降和负荷增加。因此,在HTTP/1.1中,规定用一次TCP连接、集中传输多个文件。在一页上有多个图像文件的站点中,由于削减了建立/切断TCP连接的开销,可望大幅提高响应速度。在SLB设备中,有两种情况可以建立永久性TCP连接:(1)在SLB设备与Web服务器之间,用永久性TCP连接集中传输多个用户请求的多个文件;(2)在客户机和SLB设备之间,每个客户端实现一个TCP连接,集中传输多个文件。这种通信方法通常叫做“保持通话连接(Keep Alive)"。

支持多重防火墙的产品

还有在多重防火墙和VPN设备中可使用的负载均衡设备。如BIG-IP、Alteon系列等。在构筑大规模Intranet和使用VPN进行企业内外频繁通信时,防火墙和VPN往往会成为瓶颈。在这种情况下,最好导入支持防火墙负载均衡的产品。在导入这些产品时,要设置两台负载均衡设备,将多个防火墙和VPN设备夹在中间来分散流向防火墙和VPN的通信量。这种情况下,如果 “往返" 的通信不是通过同一个防火墙和VPN,就不能正确工作。因此,在Internet侧和Intranet侧设置的负载均衡设备要相互协调。

还有支持IDS的负载均衡的产品,如Alteon 和美国Toplayer公司的AppSwitch3500 等。如果简单分散流向IDS的通信量,恐怕不能检测出诸如DoS(Denial of Service)这类连续通信构成的攻击。因此,支持IDS的负载均衡产品具有这样的功能:以送达目标IP地址作为判定条件,将一连串连续的通信分配给特定的IDS。

通过Internet进行站点间负载均衡

有的产品具有通过Internet实现站点间负载均衡的功能。最近,越来越多的产品标准配置有站点间负载均衡功能或通过“可选项"追加这个功能。

Array系列和Foundry公司的ServerIron系列的标准配置有站点间负载均衡功能;BIG-IP和Equalizer系列,可以通过“选项"选择支持站点间负载均衡功能。

F5 Networks公司的3DNS、思科的Content Router 4400、北电的Personal Content Director以及Hydra 等都是用于站点间负载均衡的专用设备。这些专用设备与站点内的SLB设备并用,可以掌握各站点的负荷状况,精确控制分配对象。

URL改写与CDS联合

在不改变服务器上内容的情况下,具有支持CDS(Content Delivery Service)功能的产品也开始面市。利用CDS时,必须将内容中的URL改写成专用的标识。尽管有改写工具,但要一个一个的改写服务器上的内容也很烦琐。使用URL的改写功能,就无须变更服务器上的内容。今后,与CDS联合起来实现负载均衡也是一种方向。如果利用配置有逆向代理缓存(Reverse Proxy cache )功能的Array系列,也可以构筑简易CDS。

SLB设备的选择标准

注意吞吐量—在选择产品时,吞吐量是重要的技术指标。在识别应用层时,必须将分割成包的信息复元成“应用",这无疑加重了处理负担。目标吞吐量的计算方法,各个厂家往往不同。在安装必要的处理时是否能达到所需要的吞吐量,必须要得到厂家的确认。在使用SSL时,为了识别应用层的信息,事先必须要解密SSL。如果要选择配置有加速器功能的产品和可追加加速器功能的产品,SSL的处理不会成为瓶颈。Intel的7180/7185 e-Commerce Director和Array 系列,其标准配置有加速器,BIG-IP用选项可以追加。

注意各产品分配条件定义上的差异—在分配条件的定义方法上,各产品是有差别的。例如,在HTTP头中包含有特定字符串时,作为分配通信的判定方法,BIG-IP系列产品和其它产品就有所不同。另外,对HTTP头内容的解释,不同产品也有所不同。在SLB设备中,有的产品只能解释Cookie和URL等有限的HTTP头,有的产品能解释的字节数有限制。在应用时,一定要充分确认是否满足识别HTTP头所需要的条件。

 

http://network.51cto.com/art/201004/197116_2.htm

分享到:
评论

相关推荐

    Web服务器负载均衡方案

    Web服务器负载均衡是一种技术,用于在多台服务器之间分配网络流量,以确保任何单台服务器不会过载,从而保持服务的稳定性和可用性。这种方案是大型网站和高并发应用的关键组成部分,它能够提高系统性能,增强容错...

    Dubbo负载均衡策略.docx

    本文将详细介绍Dubbo提供的几种负载均衡策略。 1. **随机负载均衡(Random Load Balance)** 这是Dubbo默认的负载均衡策略。它会为每个服务提供者计算一个权重值,然后基于这个权重进行随机选择。权重值可以根据...

    负载均衡实例

    总的来说,这个实例提供了从头开始设置和配置一个基于mod_jk的Apache-Tomcat负载均衡集群的详细步骤,涵盖了从安装到配置、启动和监控的所有关键环节。对于开发者和运维人员来说,这是一个非常有价值的实践教程,...

    Vchat — 从头到脚,撸一个社交聊天系统(vue + node + mongodb).zip

    本项目“Vchat — 从头到脚,撸一个社交聊天系统”就是这样一个实例,它利用Vue.js作为前端框架,Node.js作为后端开发语言,MongoDB作为数据存储,为我们呈现了一个完整的实时通信解决方案。 **Vue.js** 是一个轻量...

    负载均衡Irules编程宝典

    例如,假设我们需要实现一种基于URL的负载均衡策略,即将请求路由到不同的服务器池。我们可以通过编写如下的iRules脚本来实现这一目标: ```tcl when HTTP_REQUEST { if {[HTTP::uri] starts_with "/api/v1"} { ...

    百万用户级游戏服务器架构设计

    "百万用户级游戏服务器架构设计" ...百万用户级游戏服务器架构设计需要考虑到服务器结构、登录服资源配置、负载均衡、数据持久化等多个方面,设计一个合理的服务器结构可以提高系统的可扩展性和可维护性。

    jdk+tomcat+nginx+redis+session共享从头搭建一套完整服务

    在Nginx中配置负载均衡,你需要定义一个upstream块,指定后端服务器(如多个Tomcat实例),然后在server块中使用proxy_pass指令将请求转发到upstream。同时,Nginx还可以缓存静态资源,进一步提升响应速度。 为了...

    学习nginx案例

    负载均衡是指将流入的网络流量分散到多个服务器上,以防止任何单一服务器过载,确保服务的持续性和高效性。Nginx提供了强大的负载均衡功能,支持多种调度算法,如轮询、最少连接数、IP哈希等。 1. **轮询(Round ...

    计算机软件-商业源码-271 连接到MTS服务器.zip

    9. **性能优化**:源码中可能涉及如何优化MTS服务器的性能,例如通过缓存策略、负载均衡、消息压缩等技术提高处理速度和减少网络带宽消耗。 10. **日志和监控**:为了排查问题和了解系统运行状态,源码可能包含日志...

    nginx-1.6.2.rar

    负载均衡是 Nginx 的一个重要功能,它可以将来自客户端的请求分散到多个后端服务器,以提高系统的可用性和响应速度。Nginx 支持多种负载均衡策略,包括: 1. **轮询(round-robin)**:这是最简单的策略,每个请求...

    Pacemaker从头开始搭建集群

    2. **测试负载均衡**:通过工具如HAProxy或Nginx配置负载均衡,确保流量均匀分配到每个节点。 3. **监控性能**:使用性能监控工具监控集群的负载情况,确保在活跃/活跃模式下各节点能够有效分担工作负荷。 #### 六...

    ip_vs_rr.rar_linux 任务调度

    轮转调度算法是一种简单而公平的策略,它的基本思想是依次将请求分发到每个服务器,确保所有服务器都有机会处理请求,从而达到负载均衡的目的。在IPVS的上下文中,RR算法会按顺序分配新的连接请求到服务器列表,一旦...

    随便记录,基于springboot的java游戏服务器基础模板.zip

    10. **性能优化**:如缓存策略、数据库查询优化、负载均衡等,提升服务器的响应速度和稳定性。 通过这个项目,你可以从头开始了解并掌握游戏服务器的开发过程,从简单的代码结构到复杂的系统设计,逐步提升你的编程...

    K1 Power Systems 系统软件解决方案介绍

    - **动态分区迁移(LPM)**:可将在线或离线分区动态迁移到目标服务器,有助于整合和优化服务器资源,实现负载均衡。 - **远程分区重启(RemoteRestart)**:发生计划外停机时,如异常断电等,可快速在远程目标...

    PostgreSQL 10.1 中文手册.chm

    PostgreSQL 10.1 中文手册 chm格式 带多级目录,带索引列表 可全文搜索,可离线查阅 可收藏目录,可收藏索引 部分目录: 前言 1.... 2.... 3.... 4.... 5....I.... 1. 从头开始 ... 高可用、负载均衡和复制 27. 恢复配置...

    PostgreSQL 12.2 中文手册.chm

    PostgreSQL 12.2 中文手册 chm格式 带多级目录,带索引列表 可全文搜索,可离线查阅 可收藏目录,可收藏索引 部分目录: 前言 1.... 2.... 3.... 4.... 5.... 高可用、负载均衡和复制 27. 监控数据库活动....

    PostgreSQL 11.2 中文手册.chm

    PostgreSQL 11.2 中文手册 chm格式 带多级目录,带索引列表 可全文搜索,可离线查阅 可收藏目录,可收藏索引 全网唯一 部分目录: 前言 1.... 2.... 3.... 4.... 高可用、负载均衡和复制 27. 恢复配置....

    postgresql中文手册

    24. 高可用性与负载均衡 25. 监控数据库的活动 26. 监控磁盘使用情况 27. 可靠性和预写式日志 28. 回归测试 IV. 客户端接口 29. libpq - C库 30. 大对象 31. ECPG - 在C里嵌入SQL 32. 信息模式 V. 服务器...

    tomcat5.5集群完整版

    每个节点还需要配置一个负载均衡器,例如使用Apache HTTP Server或Nginx,来分配请求到不同的Tomcat实例。 纯净版的Tomcat用于用户自定义集群配置,可以根据需求添加必要的模块和服务。测试集群的包则可以帮助用户...

Global site tag (gtag.js) - Google Analytics