IIS负载均衡之介绍篇:Application Request Route详解

说到负载均衡,相信你们已经再也不陌生了,本系列主要介绍在IIS中能够采用的负载均衡的软件:微软的Application Request Route模块。 算法

   

       其实Application Request Route已经有不少文章介绍过了,可是有不少的文档都是英文的,笔者在项目中,曾经为了使用和测试Application Request Route,将有关的文档已经转为中文,在组员之间传阅,本系列在这些文档的中,再加入一些使用的心得。 服务器

   

本篇议题以下: 负载均衡

Application Request Route介绍 分布式

Application Request Route安装 ide

   

   

系列文章连接: 学习

IIS负载均衡-Application Request Route详解第一篇: ARR介绍   测试

IIS负载均衡-Application Request Route详解第二篇:建立与配置Server Farm spa

   

Application Request Route介绍 .net

   

Application Request Route(后面简称为ARR)是一个寄宿于IIS7(及之后的IIS版本)的一个基于代理的模块,它能够经过判断Http Headers,Server Variables以及负载均衡算法将HTTP的请求转发到不一样的处理服务器之上。ARR的用处以下: 代理

  1. 加强应用的可用性与扩展性
  2. 更好的利用服务器资源
  3. 使得应用程序的部署更加方便,而且支持卫星部署管理与热替换
  4. 更低的管理成本,使得共享宿主的部署成为可能

   

ARR是基于URL Rewrite Module的,它经过检测客户端发来的HTTP请求来作出请求路由的决定。

   

下面,咱们就进一步的看看ARR的一些特征:

   

1.基于HTTP请求,作出的请求路由的决定

   

       与硬件的负载均衡不一样(在OSI模型的IP层来决定请求的路由方式),ARR是基于应用层来进行负载均衡的,由于在应用层可用的信息更多(其实谈到这里,是颇有必要把负载均衡的原理讲清楚的,可是,由于本系列主要是讲述ARR,因此,对已一些底层原理性的概念,不会作过多的涉及,之后计划为朋友们系统的讲述负载均衡的原理及其实现,能够参看:负载均衡第一篇-介绍篇)。经过在ARR中使用URL  Rewrite Module,咱们就能够实基于Http Headers与Server Variables来实现个更强大的路由规则。

   

2.提供多种负载均衡算法

咱们能够本身决定使用哪种负载均衡算法来进行请求的路由,ARR提供了如下6种算法。

   

3.健康检查

       咱们可使用"实时通讯"和"特定Url测试"来检查服务器的健康情况。而且,咱们还能够经过使用不少的参数来决定到底什么样的情况才是健康的正常的服务器,例如,有人认为只要服务器是开启的,就是健康的;也有人认为,服务器开启,而且处理的请求没有超载是健康的,等等。另外,咱们还能够经过使用本身的提供Health Monitoring Provider来实现本身的健康检查可能。

   

4.客户端亲缘性

       关于亲缘性,相信你们再也不陌生,我这里稍微的提一下:就是更加倾向于,或者喜欢那个。例如,在SQL Server中能够设置CPU的亲缘性,,假设如今有四个CPU,编号分别是A,B,C,D,如今咱们SQL Server的CPU亲缘性设置到A上,就是说: SQL Server在处理请求的时候,更加喜欢把请求发送给编号为A的CPU来处理,固然也会将请求发送给其余的CPU,可是A的CPU处理请求的机会更多。

   

同理,在ARR中,能够经过设置客户端的亲缘性,ARR主要是经过使用Cookie来实现的。至于如何实现的,其实也很简单,这里暂且不说。

   

这里就来讲说客户亲缘性的一些须要考虑的点:

  1. 若是使用了客户端亲缘性,就能够在应用中使用传统的Session和Cache,而没有必要使用分布式的Session和Cache。这里,以Session为例子,由于不少的时候,咱们都须要将一个站点应用部署到多个服务器上,若是在某些地方使用了Session,特别保存用户的一些数据的时候,就须要使用分布式的Session,用户登陆就是一个最明显的例子(避免用户从服务器A上登陆,当下一次请求在B服务器处理的时候,还须要再次登陆)。使用客户端亲缘性,ARR就能够将同一个用户的请求再次转发到用户第一次请求的服务器上。
  2. 使用客户端亲缘性,就在必定程度上面失去了负载均衡的意义。由于设置了客户端亲缘性,即便用户初次请求的服务器如今压力很大,那么ARR仍是会将用户的请求转发过去。
  3. 客户端亲缘性,失去了高可用性。由于颇有可能如今处理用户请求的服务器已经宕机了,虽然ARR有健康检查机制,可是ARR仍是能够将请求发给宕机的服务器,致使请求没法处理。 

5.宿主名亲缘性

理解了上面的"客户端亲缘性",这里就更加容易理解了。" 宿主名亲缘性"主要使用在共享服务器中的(不少人使用一台服务器,就是站点部署的时候,购买的是"虚拟地址空间")。咱们后面在提到的时候,会详细讲解。

   

6.服务器分组

ARR能够管理不少的服务器组,其中每一组又包含多台服务器服。

   

7.基于图形化界面的管理与健康

ARR与IIS集成,而且,经过了可视化的,便于操做的可视化操做界面。

   

   

8.制定请求失败的跟踪规则

在ARR中,能够定义特定的跟踪规则,当请求处理失败以后查看跟踪信息,便于诊断。

   

Application Request Route安装

下面,咱们就介绍ARR的安装,便于你们快速上手与学习:

ARR依赖于如下组件:

  1. Microsoft URL Rewrite Module for IIS 7.0.
  2. Microsoft Web Farm Management Version 1 for IIS 7.0.
  3. Microsoft Application Request Routing Version 1 for IIS 7.0.
  4. Microsoft External Cache Version 1 for IIS 7.0.

                

ARR的安装,须要相关的环境,以下:

  1. IIS 7.0 以及之后的版本(笔者在Win 7和Server2008中都安装过,是能够的)

   

下面开始进入安装:

   

1. 下载ARR:

如今ARR已经发展了2.5的版本,能够说已经很稳定了,笔者也在一些大型项目中已经采用,效果还不错。

如今地址:http://www.iis.net/download/ApplicationRequestRouting

   

   

2. 如今ARR集成在Web 安装平台中,以下:

3.点击"Install",开始安装

4.安装以后,打开IIS的控制窗口,以下(Win7系统的界面):

若是看到有"Server Farms",就说明安装OK了。

   

5.配置应用程序池

全部的HTTP请求都须要通过ARR。因此,咱们但愿在安装了ARR的服务器上的IIS要必须不停的运行,不停把请求转发到其余的服务器上面,也就是说:这台安装了ARR的服务器基本的功能就是请求转发。

   

假设如今咱们手里有3台服务器(编号分别为A,B,C)来部署agilesharp的站点,安排以下:

 

如今服务器A向外面暴露的地址假设为:159.12.2.15,那么咱们在A服务器上创建一个agilesharp的站点,以下:

而且,咱们设置agilesharp站点的应用程序池为IIS的集成模式。这个时候,由于这个站点其实只是暴露给外面,真正的请求处理在B和C服务器。因此,咱们要设置这个agilesharp的站点的应用程序池,从而它源源不断的接受HTTP请求(应用程序池默认是不会不断的介绍请求的,它有一个时间的延时,这个延时的时间每每就是默认的请求处理时间),而后由ARR转发。

   

设置以下:

Idle Time-out (minutes)设置为0,而后保存就OK了。 

OK,介绍就到这里,下一篇,咱们就来看看一些具体的应用!

本文出自 "燕洋天" 博客,请务必保留此出处http://yanyangtian.blog.51cto.com/2310974/817136

相关文章
相关标签/搜索