.net web 使用IIS ARR(Application Request Route)技术实现web的高性能、高可靠、易扩展及负载均衡。ARR的使用请参考 IIS负载均衡-Application Request Route详解

一般应用场景见下图所示,其中一台服务器只做ARR服务器,接受客户端发来的请求,根据配置的负载均衡算法,把请求转发给真正的请求处理服务器,如下图ServerFarm中的服务器B或C,由服务器B或服务器C来处理请求把处理结果返回给ARR服务器A,ARR服务器再把处理结果返回客户端。

我们的ARR服务器配置很好,只做ARR服务器有点浪费,为了实现高并发访问,我想ARR服务器做ARR服务的同时做应用程序服务器,即替ServerFarm中的服务器承担工作量。网上搜索了很多资料说是无法实现,但经我摸索通过配置url rewrite规则实现了我的需求。假定ARR服务器以80端口对外提供服务,ARR接收到80端口请求后,也会根据负载均衡规则转发请求给自己的8080端口上的web应用进行处理请求或者其他服务的8080端口上的web应用。实现大致步骤

1、ServerFarm中添加ARR服务器作为负载均衡服务器,注意端口

ServerFarm列表

2、url rewrite规则配置,ARR服务器指定端口的http请求会被转发给ServerFarm中的服务器

实现后部署图如下图示

使用ARR后的一些问题及解决:

ARR服务器一般可以作为web 静态资源(js、图片等)服务器,通过配置url 重写规则,静态资源请求ARR予以处理,不再转发给其它服务器

使用ARR后,Session不要选择在进程中存储,需要选择使用 StateServer方式或SqlServer存储。如果坚持在进程中存储的话,可用选择使用客户端亲缘性(Client affinity),即客户所有的请求都有相同的服务器进行响应,不会转发到其它服务器,这牺牲了可靠性,当这台服务器挂掉时,请求无法被转发到其它服务器进行服务,结果就是客户端请求无响应。

使用ARR后各负载服务器上的web应用文件不一致的问题(如服务器b上上传了部分图片在自己Upload文件夹里,服务器c上传了部分图片在自己的Upload文件夹里,但是用户访问服务器a时,请求的图片可能在服务器b上存储时,服务器a返回FileNotFound等类似的问题),解决方法:文件上传统一放到一台文件服务器上(如服务器a),各个服务器上面的web应用通过配置虚拟目录指向统一的文件服务器目前,这样上传、读取都在统一的文件服务a上面,不会出现各个web应用各自只有自己的文件没有其他服务器文件的问题。

IIS负载均衡ARR路由请求到ARR服务器和处理服务器的更多相关文章

  1. IIS负载均衡-Application Request Route详解第一篇: ARR介绍(转载)

    IIS负载均衡-Application Request Route详解第一篇: ARR介绍 说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Applica ...

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

    IIS负载均衡-Application Request Route详解第一篇: ARR介绍 说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Applica ...

  3. IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构(转载)

    IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构 系列文章链接: IIS负载均衡-Application Request Route详解第一篇: ...

  4. IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm(转载)

    IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm 自从本系列发布之后,收到了很多的朋友的回复!非常感谢,同时很多朋友问到了一些问题,有些问 ...

  5. IIS负载均衡(转)

    在大型Web应用系统中,由于请求的数据量过大以及并发的因素,导致Web系统会出现宕机的现象,解决这一类问题的方法我个人觉得主要在以下几个方面: 1.IIS 负载均衡. 2.数据库 负载均衡. 3.系统 ...

  6. IIS负载均衡相关

    1. IIS负载均衡 (比较简单的例子,能看到效果) 2.nginx+iis实现负载均衡 3.Windows平台分布式架构实践 - 负载均衡 4.Net分布式系统:Keepalived+LVS+Ngi ...

  7. IIS 负载均衡

    在大型Web应用系统中,由于请求的数据量过大以及并发的因素,导致Web系统会出现宕机的现象,解决这一类问题的方法我个人觉得主要在以下几个方面: 1.IIS 负载均衡. 2.数据库 负载均衡. 3.系统 ...

  8. 前端通信:ajax设计方案(七)--- 增加请求错误监控、前端负载均衡以、请求宕机切换以及迭代问题修复

    距离上个迭代过了很长时间,中间经历了很多事情,也在每个空余时间构思了这个迭代的东西以及下个迭代要做的东西.时间周期稍微长了,望见谅. 而且,至今这个开源库的start也已经到了165个了,会支持关注和 ...

  9. Windows下应用级别的IIS负载均衡方案 Application Request Route

    转载于:https://blog.csdn.net/2000killer/article/details/51228625 序言 随着公司业务的发展,后台业务就变的越来越多,然而服务器的故障又像月经一 ...

随机推荐

  1. 个人理解的javascript作用域链与闭包

    闭包引入的前提个人理解是为从外部读取局部变量,正常情况下,这是办不到的.简单的闭包举例如下: function f1(){ n=100; function f2(){ alert(n); } retu ...

  2. android Activity类中的finish()、onDestory()和System.exit(0) 三者的区别

    android Activity类中的finish().onDestory()和System.exit(0) 三者的区别 Activity.finish() Call this when your a ...

  3. Sql Server 2008卸载后再次安装一直报错

    sql server 2008卸载之后再次安装一直报错问题. 第一:由于上一次的卸载不干净,可参照百度完全卸载sql server2008 的方式 1. 用WindowsInstaller删除所有与S ...

  4. 数据仓储之DLL层接口设计

    一.接口设计 1.1. IBaseRepository.cs public interface IBaseRepository<T> { T Add(T entity); bool Upd ...

  5. [11]APUE:(文件)记录锁

    [a] 概念 建议锁:在遵循相同记录锁规则的进程间生效,通常用于保证某个程序自身多个进程间的数据一致性 强制锁:意在保证所有进程间的数据一致性,但不一定有效:如不能应对先 unlink 后建立同名副本 ...

  6. CSS3动画效果结合JS的轮播

    <style> *{;} #big{ width: 100%; height: 280px; } .carousel-wrapper{ width: 500px; height: 280p ...

  7. js二维数组与字符串

    1. 二维数组:数组中的元素,又引用了另一个数组对象 何时使用:只要保存横行竖列的数据, 具有上下级包含关系的数据, 创建二维数组: 1. var arr=[]; col arr[0]=[" ...

  8. MvcPager 免费开源分页控件3.0版发布!

    MvcPager 3.0版在原2.0版的基础上进行了较大的升级,对MvcPager脚本插件重写并进行了大量优化.修复了部分bug并新增了客户端Javascript API等功能,使用更方便,功能更强大 ...

  9. html中的标签

    1.<big></big>定义大字体的文字 2.<blockquote>标记长的引用:</blockquote>请注意,浏览器在 blockquote ...

  10. VS与ultraedit 正则表达式替换

    ASP中把request("{param}")调用替换为requestX("{param}") VS 表达式替换(?<a>request\(&quo ...