做网站一定要注册域名吗,固安县建设局网站,wordpress悬浮刷新,张槎网站开发说到负载均衡#xff0c;相信大家已经不再陌生了#xff0c;本系列主要介绍在IIS中可以采用的负载均衡的软件#xff1a;微软的Application Request Route模块。 其实Application RequestRoute已经有很多文章介绍过了#xff0c;但是有很多的文档都是英文的#xff0c;笔者… 说到负载均衡相信大家已经不再陌生了本系列主要介绍在IIS中可以采用的负载均衡的软件微软的Application Request Route模块。 其实Application RequestRoute已经有很多文章介绍过了但是有很多的文档都是英文的笔者在项目中曾经为了使用和测试Application Request Route将有关的文档已经转为中文在组员之间传阅本系列在这些文档的中再加入一些使用的心得。 本篇议题如下 Application Request Route介绍 Application Request Route安装 Application Request Route介绍 ApplicationRequest Route后面简称为ARR是一个寄宿于IIS7及以后的IIS版本的一个基于代理的模块它可以通过判断Http HeadersServer Variables以及负载均衡算法将HTTP的请求转发到不同的处理服务器之上。ARR的用处如下 1. 增强应用的可用性与扩展性 2. 更好的利用服务器资源 3. 使得应用程序的部署更加方便并且支持卫星部署管理与热替换 4. 更低的管理成本使得共享宿主的部署成为可能 ARR是基于URLRewrite Module的它通过检测客户端发来的HTTP请求来做出请求路由的决定。 下面我们就进一步的看看ARR的一些特征 基于HTTP请求做出的请求路由的决定 与硬件的负载均衡不同在OSI模型的IP层来决定请求的路由方式ARR是基于应用层来进行负载均衡的因为在应用层可用的信息更多其实谈到这里是很有必要把负载均衡的原理讲清楚的但是因为本系列主要是讲述ARR所以对已一些底层原理性的概念不会做过多的涉及以后计划为朋友们系统的讲述负载均衡的原理及其实现。通过在ARR中使用URL Rewrite Module我们就可以实基于HttpHeaders与Server Variables来实现个更强大的路由规则。 负载均衡算法 我们可以自己决定使用哪一种负载均衡算法来进行请求的路由ARR提供了以下6种算法。 健康检查 我们可以使用“实时通信“和”特定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来实现的。至于如何实现的其实也很简单这里暂且不说。 这里就来说说客户亲缘性的一些需要考虑的点 a. 如果使用了客户端亲缘性就可以在应用中使用传统的Session和Cache而没有必要使用分布式的Session和Cache。这里以Session为例子因为很多的时候我们都需要将一个站点应用部署到多个服务器上如果在某些地方使用了Session特别保存用户的一些数据的时候就需要使用分布式的Session用户登录就是一个最明显的例子避免用户从服务器A上登录当下一次请求在B服务器处理的时候还需要再次登录。使用客户端亲缘性ARR就可以将同一个用户的请求再次转发到用户第一次请求的服务器上。 b. 使用客户端亲缘性就在一定程度上面失去了负载均衡的意义。因为设置了客户端亲缘性即使用户初次请求的服务器现在压力很大那么ARR还是会将用户的请求转发过去。 c. 客户端亲缘性失去了高可用性。因为很有可能现在处理用户请求的服务器已经宕机了虽然ARR有健康检查机制但是ARR还是可以将请求发给宕机的服务器导致请求无法处理。 5. 宿主名亲缘性 理解了上面的“客户端亲缘性“这里就更加容易理解了。“宿主名亲缘性”主要使用在共享服务器中的很多人使用一台服务器就是站点部署的时候购买的是“虚拟地址空间”。我们后面在提到的时候会详细讲解。 6. 服务器分组 ARR可以管理很多的服务器组其中每一组又包含多台服务器服。 7. 基于图形化界面的管理与健康 ARR与IIS集成并且通过了可视化的便于操作的可视化操作界面。 8. 制定请求失败的跟踪规则 在ARR中可以定义特定的跟踪规则当请求处理失败之后查看跟踪信息便于诊断。 Application Request Route安装 下面我们就介绍ARR的安装便于大家快速上手与学习 ARR依赖于以下组件 1. Microsoft URL Rewrite Modulefor IIS 7.0. 2. Microsoft Web Farm ManagementVersion 1 for IIS 7.0. 3. Microsoft Application RequestRouting Version 1 for IIS 7.0. 4. Microsoft External CacheVersion 1 for IIS 7.0. ARR的安装需要相关的环境如下 IIS 7.0 以及以后的版本笔者在Win7和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安装了ARR进行请求路由B安装ARR就是普普通通的服务器处理请求C安装ARR就是普普通通的服务器处理请求 现在服务器A向外面暴露的地址假设为:159.12.2.15那么我们在A服务器上建立一个agilesharp的站点如下 并且我们设置agilesharp站点的应用程序池为IIS的集成模式。这个时候因为这个站点其实只是暴露给外面真正的请求处理在B和C服务器。所以我们要设置这个agilesharp的站点的应用程序池从而它源源不断的接受HTTP请求应用程序池默认是不会不断的介绍请求的它有一个时间的延时这个延时的时间往往就是默认的请求处理时间然后由ARR转发。 设置如下 将Idle Time-out (minutes)设置为0,然后保存就OK了。 OK介绍就到这里下一篇我们就来看看一些具体的应用 相关内容 构建高性能.NET应用之配置高可用IIS服务器-第一篇IIS必须掌握的知识构建高性能.NET应用之配置高可用IIS服务器-第二篇 IIS请求处理模型构建高性能.NET应用之配置高可用IIS服务器-第三篇 IIS中三个核心组件的讲解上构建高性能.NET应用之配置高可用IIS服务器-第四篇 IIS常见问题之工作进程回收机制上构建高性能.NET应用之配高可用IIS服务器-第五篇 IIS常见问题之工作进程回收机制中 作者介绍汪洋哪合伙CEO曾大汉电子商务有限公司首席技术官副总裁负责公司产品、技术、运营参与商业模式设计。华康移动医疗前CTO副总裁首席架构师。微软MVP .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注 赞赏 人赞赏