负载均衡之---应用请求路由模块的使用(ARR)

 

翻译原文Url:

http://learn.iis.net/page.aspx/489/using-the-application-request-routing-module/

介绍

Microsoft Application Request Routing (ARR) for IIS 7是一个基于代理的路由模块,它基于http头、server variables和负载均衡算法将http请求转发到各个内容服务器。ARR能用在以下情况下:

  • 增进系统的有效性和可扩展性

  • 更好的利用各个内容服务器的资源

  • 简化系统部署,包括引导管理以及

  • A/B测试
  • 减少管理费用及为共享主机提供商提供更多的机会

 

ARR依赖URL Rewrite模块检查进站http请求以确定路由规则。而且,要使用ARR的话,URL Rewrite模块是必选的组件。

 

特点

Microsoft Application Request Routing for IIS 7包括下列主要特点:

l   基于HTTP的路由决策

n   ARR不像硬件负载均衡所实现的那样在IP级别实现路由决策,ARR在应用层实现路由决策。当ARR与URL Rewrite模块一起使用时,能够写出很强的基于http头及server variables的路由规则。

l   负载均衡算法

n   能够自行选择负载均衡算法以支持什么样的http请求让哪台内容服务器提供服务。共提供了6种算法。

l   系统健康监控

n   同时提供了正式环境数据以及指定URL测试两种方式来监控内容服务器的健康状态。系统还提供了许多配置参数来支持健康状态的监控。你也能同时禁用这2种健康状态监控方式,进而选择自定义的监控状态提供程序。

l   客户端亲和

n   通过使用Cookie,ARR能够保持所有的请求始终如一的与某一台内容服务器对应上。ARR在NAT的后端区分这些请求,在那里会将各个请求独立区分开。这个特性需要客户端接受Cookie。

l   主机名亲和

n   “主机名亲和”这个特性对于共享主机提供商来说是个比较有用的特性。这个特性通过改变部署结构来最小化及平滑化管理,并且创造额外的业务机会。有2种方式被用于决定内部服务器亲和性的算法,既:循环方式和内存方式。

l   多服务器组

n   ARR能够管理多个由逻辑内容服务器组成的服务器组。这个特性允许ARR能够被用在引导管理和A/B测试场景中。

l   图形界面的管理和监控

n   你能使用IIS管理器来管理和查看所有的配置信息以及对ARR运行时的汇总统计。

l   失败请求的跟踪规则

n   特定的跟踪能够被快速的加入到排错及诊断任务中。

 

模块的获取

下载Microsoft Application Request Routing Version 2 for IIS 7 (x86)

下载Microsoft Application Request Routing Version 2 for IIS 7 (x64)

 

 

使用详解

以下这些文章描写了如何配置以及如何应用到核心场景:

·         安装ARR

·         Define and Configure an Application Request Routing Server Group

·         HTTP Load Balancing using Application Request Routing

·         Includes using health monitoring and client affinity

·         Configure 3-tier deployment architecture using Application Request Routing

·         Pilot Program Management using Application Request Routing

·         Shared Hosting using Application Request Routing

·         Using Microsoft External Cache for IIS7

·         How to configure WMI service on application servers for HostNameMemory affinity provider

·         Using Failed Request Tracing Rules to Troubleshoot Application Request Routing

·         High availability at ARR tier

·         ARR and NLB

·         ARR and Hardware Load Balancer

 

 

目标

IIS7上安装ARR v1以及依赖的模块。ARR安装包包含了下列组件:

Microsoft URL Rewrite Module for IIS 7.0.

Microsoft Web Farm Management Version 1 for IIS 7.0.

Microsoft Application Request Routing Version 1 for IIS 7.0.

Microsoft External Cache Version 1 for IIS 7.0.

 

在本文档中描写的步骤会安装这4个模块。

 

先决条件

本演练需要下列先决条件:

装有IIS7.0或者更新版本的Win2008
如果目标系统已经装有下列IIS7模块,则需要先卸载掉:

Microsoft URL Rewrite Module for IIS 7.0 CTP1.

Microsoft Application Request Routing for IIS 7.0 CTP1.

 

注意:

         CTP1更新到RTW版本是不被支持的。CTP1必须在继续之前被卸载掉(所有的配置信息会丢失掉)。

         RC更新到RTW是支持的。而且,RC版本的模块不需要卸载就能继续(配置信息也不会丢失)。

 

步骤1---下载Microsoft Application Request Routing Version 1

可以从以下2个地方下载相对应的版本(根据机器类型):

Microsoft Application Request Routing Version 1 for IIS 7 (x86) here.

Microsoft Application Request Routing Version 1 for IIS 7 (x64) here.

 

步骤2---安装Microsoft Application Request Routing Version 1

1. administrator身份打开命令行

2. 输入如下命令来停止WASWMSVC进程(执行这个是因为ARR会安装补丁KB 954438)。

a)         net stop was /y

b)         net stop wmsvc /y

3. 运行程序ARR_<x86/x64>_exe

a)         ARR_ x86_Version1.exe

b)         或者

c)         ARR_ x64_Version1.exe

4. 接受最终用户许可协议(EULA)

5. 然后这4个组件会依次安装

6. 安装完成

7. 要想查看详细的安装日志,可以查看%TEMP%\arr_setup.log。如果安装都成功,你会看到下列信息:

a)         Completed the Microsoft Application Request Routing for IIS7 RC Setup

b)         Installation results - look in the respective msi log files (msiname.log) for more details

c)         rewrite.msi   Success

d)         webfarm.msi   Success

e)         requestrouter.msi   Success

f)          externaldiskcache.msi   Success

8. (可选资料)出于查错的目的,下载的可执行文件是能够被单独抽取出msi安装包的。可以使用参数/T:<full path>/C来完成。这个命令只限于抽取这4msi文件。如果这些模块打算用msi的方式手动安装,则必须以下列顺序安装:

a)         rewrite.msi

b)         webfarm.msi

c)         requestrouter.msi

d)         externaldiskcache.msi

e)         参数的更多详细信息,可以通过/?参数来查看

9. 输入以下命令来启动WASWMSVC进程

a)         Net start was

b)         Net start wmsvc

 

步骤3---为ARR改变应用程序池进程模型

所有对网站的http请求和回应都会经过ARR。出于这点,需要让ARR所在的Default Web Site对应的工作进程总是处于运行状态,无论其它的工作进程是否处于运行状态。

 

在这个步骤中,你将把Default Web Site的应用程序池进程模型的Idle Time-Out参数禁用。

 

更改应用程序池进程模型,如下所示:

1.       打开IIS管理器

2.       选中应用程序池

3.       默认情况下,DefaultAppPoolDefault Web Site相应的应用程序池。选中DefaultAppPool,然后ActionàEditàApplication Pool, 选择Advanced Settings 

4.       设置Idle Time-out(minutes)0,点击OK按钮保存更改。

 

如果以命令行方式更改应用程序池进程模型,则采取如下方法:

1.       administrator特权打开命令行

2.       导航到文件夹%windir%\system32\inetsrv

3.       使用appcmd命令,输入如下:

a)         appcmd.exe set apppool "DefaultAppPool" -processModel.idleTimeout:"00:00:00" /commit:apphost

 

修复

修复ARR会牵涉到重新运行下载的软件安装包。按照步骤2重新安装。

 

卸载

想要完全卸载ARR模块,这4个模块需要按照先后顺序依次卸载:

1.       Microsoft Application Request Rouitng Version 1 for IIS 7

2.       Microsoft External Cache Version 1 for IIS 7

3.       Microsoft URL Rewrite Module for IIS 7.0

4.       Microsoft Web Farm Framework Version 1 for IIS 7

 

 

定义及配置ARR服务器组

 

 

概述

本篇将指导读者一步步在IIS7下定义及配置ARR服务器组。服务器农场实际是一个由应用服务器组成的逻辑组,是基于http请求和负载均衡算法管理之下的。

 

目标

基于ARR来定义及配置服务器农场,原理如下所示:

 

先决条件

本次演练需要下列这些模块:

装有IIS7Windows 2008或者更新版本

Microsoft Application Request Routing 和关联模块

至少由两台应用服务器组合的工作站点和应用程序

 

步骤1 – 创建一个基于ARR的服务器农场

创建和定义服务器农场,图形方式如下:

1.       打开IIS管理器

2.       选中并且展开服务器根(ARR是服务器级别的特性)

a)         

3.       要创建服务器农场,右键单击Server Farms节点, 然后单击Create Server Farm菜单

a)         

4.       输入服务器农场的名称。下图中, myServerFarm就是服务器农场的名称。然后单击Next按钮

a)         

5.       下一步是将各个服务器加入到农场中。在Add Server界面中,根据需要添加各个服务器。点击Finish按钮完成添加操作(注意:在Advanced Options中可以自定义httphttps的端口):

a)         

6.       完成创建过程

 

 

以下是以命令行方式创建及定义服务器农场的步骤:

1.   administrator身份打开命令行

2.   导航到文件夹%windir%\system32\inetsrv

3.   创建一个名为myServerFarm的服务器农场,输入appcmd.exe set config -section:webFarms /+"[name='myServerFarm']" /commit:apphost

4.   添加一台名为wonyoo-w2k8的计算机到这个农场中,输入appcmd.exe set config -section:webFarms /+"[name='myServerFarm'].[address='wonyoo-w2k8']" /commit:apphost。有更多的服务器要加入的话,则多次运行此命令

5.   此步骤在appcmd命令方式实现农场的情况中是必须的。当用图形方式创建服务器农场时,url rewrite规则是被自动创建的。但是用appcmd方式时,url rewrite规则必须手动创建。要将所有的进站http请求路由到名为myServerFarm的农场时,输入:

a)         appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance', patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost

b)         appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*" /commit:apphost

c)         appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.type:"Rewrite" /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.url:"http://myServerFarm/{R:0}" /commit:apphost

 

 

步骤2 – 为ARR配置服务器农场的属性

农场创建完后,有些额外的属性能够被用来管理ARR。在下面的演示中只包含了部分子集。

 

图形方式配置服务器农场属性:

1.       选中myServerFarm的服务器农场。显示如下:

a)         

2.       在本演示中,你将改变myServerFarm农场的负载均衡算法。双击Load Balance按钮,在Load Balance Algorithm下拉框中选择Weighted round robin项,然后点击Apply

a)         

posted on 2011-04-10 11:26  Xiaofu915  阅读(1127)  评论(0)    收藏  举报

导航