说到负载均衡,相信你们已经再也不陌生了,本系列主要介绍在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的用处以下: 代理
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来实现的。至于如何实现的,其实也很简单,这里暂且不说。
这里就来讲说客户亲缘性的一些须要考虑的点:
5.宿主名亲缘性
理解了上面的"客户端亲缘性",这里就更加容易理解了。" 宿主名亲缘性"主要使用在共享服务器中的(不少人使用一台服务器,就是站点部署的时候,购买的是"虚拟地址空间")。咱们后面在提到的时候,会详细讲解。
6.服务器分组
ARR能够管理不少的服务器组,其中每一组又包含多台服务器服。
7.基于图形化界面的管理与健康
ARR与IIS集成,而且,经过了可视化的,便于操做的可视化操做界面。
8.制定请求失败的跟踪规则
在ARR中,能够定义特定的跟踪规则,当请求处理失败以后查看跟踪信息,便于诊断。
Application Request Route安装
下面,咱们就介绍ARR的安装,便于你们快速上手与学习:
ARR依赖于如下组件:
ARR的安装,须要相关的环境,以下:
下面开始进入安装:
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